暴力 o(n3)
中心拓展法o(n2)
动态规划o(n2)
动态规划思路
根据一名分析回文串如果两边字符相同,那么必须中间是回文子串,整体才会回文
既
且二维遍历,ij确定,子串也就确定,但由于需要先计算出i+1,j-1,所以我们的遍历顺序需要从下往上,既i从大到小,j从小到大,j最小从i开始取
class Solution { public String longestPalindrome(String s) { int len =
s.length(); int ans = 0; int j = 0,i=0; boolean[][] st = new
boolean[1050][1050]; int start = 0,end = 0; for( i=len-1;i>=0;i--) { for(
j=i;j<len;j++) { if(s.charAt(i) == s.charAt(j)){ if((j-i)<=1){ st[i][j] = true;
} else if(st[i+1][j-1]){ st[i][j] = true; } } if(st[i][j]&&(ans<(j-i+1))){ ans
= j-i+1; end = j; start = i; } } } return s.substring(start,end+1); } }