所以我应该将输入字符串分成3个回文子字符串。这是一个给出的解决方案,尽管我理解得很好,但是我很难确定其时间复杂度。这是代码:
public static boolean isPallindrome(String str){
StringBuffer sb = new StringBuffer(str);
return str.equals(sb.reverse().toString());
}
public static void func(String s){
for(int i = 1; i < s.length() - 2; i++){
if (isPallindrome(s.substring(0, i))){
for(int j = i+1; j < s.length(); j++){
if (isPallindrome(s.substring(i, j)) & isPallindrome(s.substring(j))){
System.out.print(s.substring(0, i).trim() + "\n" + s.substring(i, j).trim() + "\n" + s.substring(j, s.length()).trim());
return;
}
}
}
}
func
函数的时间复杂度是多少?
我认为它将是O(n ^ 2),但我不确定。
如果正确解释了此功能的时间复杂性,它将对像我这样的初学者很有帮助。谢谢。