Leetcode5 最长回文字串
题目
代码分析
使用动态规划,写出状态转移方程之后,再去判断动态规划的路线
代码实现
public static String longestPalindrome(String s) {
char[] chas = s.toCharArray();
boolean[][] dp=new boolean[chas.length][chas.length];
int max=1;
int start=-1;
int end=-1;
for(int i=0;i<chas.length;i++)
{
dp[i][i]=true;
}
for(int i=chas.length-1;i>-1;i--)
{
for(int j=i+1;j<chas.length;j++)
{
if(chas[i]==chas[j]&&(i+1==j||dp[i+1][j-1]))
{
dp[i][j]=true;
if(max<j-i+1)
{
max=j-i+1;
start=i;
end=j;
}
}
}
}
return s.substring(start,end+1);
}学习情况
1次