给你一个字符串 s
,找到 s
中最长的回文子串。
如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。
示例 1:
输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。
示例 2:
输入:s = "cbbd" 输出:"bb"
提示:
1 <= s.length <= 1000
s
仅由数字和英文字母组成
class Solution {
public String longestPalindrome(String s) {
int slength=s.length();
int left=0;
int right=0;
int maxlen=0;
int len=1;
int maxStart=0;
if(s.length()==0){
return "";
}
for(int i=0;i<slength;i++){
left=i-1;
right=i+1;
while(left>=0&&s.charAt(left)==s.charAt(i)){
left--;
len++;
}
while(right<slength&&s.charAt(right)==s.charAt(i)){
right++;
len++;
}
while(left>=0&&right<slength&&s.charAt(left)==s.charAt(right)){
left--;
right++;
len=len+2;
}
if(len>maxlen){
maxlen=len;
maxStart=left;
}
len=1;
}
return s.substring(maxStart+1,maxStart+maxlen+1);
}
}