题目
代码分析
使用动态规划,写出状态转移方程之后,再去判断动态规划的路线
代码实现
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次