給定一個字符串 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度爲 1000。
示例 1:
輸入: "babad"
輸出: "bab"
注意: "aba" 也是一個有效答案。
示例 2:
輸入: "cbbd"
輸出: "bb"
public String longestPalindrome(String s) {
if(s==null||s.length()<2){
return s;
}
String res = s.substring(0,1);
int maxLen = 0;
for(int i=0;i<s.length()-1;i++){
String odd = getStr(s,i,i);
String even = getStr(s,i,i+1);
String maxStr = odd.length()>even.length()?odd:even;
if(maxStr.length()>maxLen){
maxLen = maxStr.length();
res = maxStr;
}
}
return res;
}
public String getStr(String s,int l,int r){
int n = s.length();
while(l>=0&&r<n){
if(s.charAt(l)==s.charAt(r)){
l--;
r++;
}else {
break;
}
}
return s.substring(l+1,r);
}