Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
Example 1:
Input: "babad" Output: "bab" Note: "aba" is also a valid answer.
Example 2:
Input: "cbbd" Output: "bb"
1 class Solution { 2 public String longestPalindrome(String s) { 3 int n = s.length(); 4 if (n == 0) return ""; 5 boolean [][]flag = new boolean[n][n]; 6 for (int i = 0; i < n; ++i) { 7 flag[i][0] = true; 8 } 9 10 for (int len = 2; len <= n; ++len ) { 11 for (int i = 0; i + len - 1 < n; ++i) { 12 13 if (s.charAt(i) != s.charAt(i + len - 1)) continue; 14 if (len - 3 == -1 || flag[i + 1][len - 3]) { 15 flag[i][len - 1] = true; 16 } 17 } 18 } 19 20 for (int len = n; len >= 0; --len ) { 21 for (int i = 0; i + len - 1 < n; ++i) { 22 if (flag[i][len - 1]) return s.substring(i, i + len); 23 } 24 } 25 return ""; 26 } 27 }
5. Longest Palindromic Substring
原文:https://www.cnblogs.com/hyxsolitude/p/12238905.html