LeetCode--005--最长回文子串(java)
给定一个字符串 s
,找到 s
中最长的回文子串。你可以假设 s
的最大长度为 1000。
示例 1:
输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。
示例 2:
输入: "cbbd" 输出: "bb"
1 class Solution { 2 public String longestPalindrome(String s) { 3 if(s == null || s.length() == 0){ 4 return s; 5 } 6 String res = ""; 7 boolean[][] dp = new boolean[s.length()][s.length()]; 8 int max = 0; 9 for(int j = 0;j < s.length();j++){ 10 for(int i = 0;i <= j;i++){ 11 dp[i][j] = s.charAt(i) == s.charAt(j) &&(j-i<=2 || dp[i+1][j-1]); 12 if(dp[i][j]){ 13 if(j-i+1 > max){ 14 max = j-i+1; 15 res = s.substring(i,j+1); 16 } 17 } 18 } 19 } 20 return res; 21 } 22 }
2019-03-12 23:11:25