//字符串n,中心為n + n-1(空隙),從每一個中心往兩邊掃描,O(n^2)
改進:
public String longestPalindrome1(String s) { if (s == null || s.length() == 0) { return ""; } int len = s.length(); boolean[][] palin = new boolean[len][len]; String res = ""; int maxlen = 0; for (int i = len-1; i >= 0; i--) { for (int j = i; j < len; j++) { if (s.charAt(i) == s.charAt(j) && (j-i<=2 || palin[i+1][j-1])) { palin[i][j] = true; if (maxlen < j-i+1) { maxlen = j-i+1; res = s.substring(i,j+1); } } } } return res; }//動態規劃,申請額外空間存儲i~j是否回文
新聞熱點
疑難解答