解题思路
二维动态规划
提交代码
class Solution {
public String longestPalindrome(String s) {
int len=s.length();
int maxLen=0;
String ans="";
Boolean[][] dp=new Boolean[len][len];
for(int k=0;k<len;k++) {
for(int i=0,j=i+k;j<len;i++,j++) {
if(i==j) dp[i][j]=true;
else if(j-i==1)
dp[i][j]=(s.charAt(i)==s.charAt(j));
else
dp[i][j]=dp[i+1][j-1]&&(s.charAt(i)==s.charAt(j));
if(dp[i][j]==true&&(j-i+1)>maxLen) {
maxLen=j-i+1;
ans=s.substring(i,j+1);
}
}
}
return ans;
}
}