解题思路
二维动态规划
提交代码
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;
}
}
运行结果

本文详细介绍了如何使用二维动态规划解决寻找字符串中最长回文子串的问题,通过具体的代码实现展示了算法的运行过程,为读者提供了清晰的解题思路。
196

被折叠的 条评论
为什么被折叠?



