給定一個字符串 s,找到 s 中最長的回文子串澄者。你可以假設(shè) s 的最大長度為 1000估脆。
示例 1:
輸入: "babad"
輸出: "bab"
注意: "aba" 也是一個有效答案苟翻。
示例 2:
輸入: "cbbd"
輸出: "bb"
不管那些花里胡哨的 直接暴力dp
class Solution {
public String longestPalindrome(String s) {
if (s==null || s.length() <1)
return "";
int len = s.length();
String ret = "";
boolean[][] dp = new boolean[len][len];
for(int i =0;i<len;i++)
dp[i][i] = true;
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 || dp[i + 1][j - 1])){
dp[i][j] = true;
}
else
dp[i][j]=false;
if(j-i+1 > ret.length() &&dp[i][j]){
ret = s.substring(i,j+1);
}
}
}
return ret;
}
}