5. 最长回文子串
力扣链接:5. 最长回文子串 - 力扣(LeetCode)
class Solution {
public String longestPalindrome(String s) {
char[] ss = s.toCharArray();
int len = s.length();
boolean[][] dp = new boolean[len][len];
int l = 0,r = 0;
for(int i = 0;i<len;i++){
dp[i][i] = true;
}
//难点:从长度比较短的向长度比较长的字符串动态转移
for(int L = 2;L<=len;L++){
for(int i=0;i+L-1<len;i++){
int j = i+L-1;
if(ss[i]==ss[j]) {
if(i+1>j-1){
dp[i][j] = true;
}else if(dp[i+1][j-1]){
dp[i][j] = true;
}
}
if(dp[i][j] && L>r-l+1){
l=i;
r=j;
}
}
}
return s.substring(l,r+1);
}
}