给定一个字符串 s
,找到 s
中最长的回文子串。你可以假设 s
的最大长度为 1000。
int expandFromCenter(string s,int left,int right){
while(left>=0 && right<s.length() && s[left]==s[right]){
--left;
++right;
}
return right-left+1-2;
}
string longestPalindrome(string s) {
int length=0,maxLength=0;
int maxIndex=0;
for(int i=0;i<s.length();++i){
int length1=expandFromCenter(s,i,i);
int length2=expandFromCenter(s,i,i+1);
length=max(length1,length2);
if(length>maxLength){
maxLength=length;
maxIndex=i;
}
}
return s.substr(maxIndex-(maxLength-1)/2,maxLength);
}