public class Main{
public static void main(String[] args){
String s = "babad";
System.out.println(longestPalindrome(s));
}
static String longestPalindrome(String s) {
char[] c = s.toCharArray();
int start = 0,end = 0,len = 0;
int[][] dp = new int[c.length][c.length];//记录s.substring(j,i+1)是否为回文
for(int j = 0; j < c.length; j++){
for(int i = j; i >= 0; i--){
if(c[i] == c[j]){
if(j - i < 3){
dp[i][j] = 1;
}
else{
dp[i][j] = dp[i+1][j-1];
}
if(len < j - i + 1 && dp[i][j] == 1){
len = j - i + 1;
start = i;
end = j;
}
}
}
}
return s.substring(start,end+1);
}
}
最长回文子串
最新推荐文章于 2024-07-21 22:27:18 发布