我已经写好了。
public class Palindrom {
public static boolean isPalindrom(String s){
char[] c = s.toCharArray();
for(int i =0;i<=(s.length()-1)/2;i++){
if(c[i]!=c[(s.length()-1)-i]){
return false;
}
}
return true;
}
public static void main(String[] args){
String s="aba";
int n=3;
for(int j=0;j<s.length()-1;j++){
for(int i =j+n;i<s.length()+1;i++){
if(isPalindrom(s.substring(j,i))){
System.out.println(s.substring(j,i));
}
}
}
}
}
代码的复杂性我认为是o(n ^ 3)。如果我错了,请纠正我。 有人请确认这是正确的
也可以有人告诉我如何使用DP(动态编程)解决这个问题吗?