中心扩展法(寻找最长循环子串)分奇偶
class Solution {
public:
int find_str(int left,int right,string &s){
while(left>=0&&right<s.size()&&s[left]==s[right]){
left--;
right++;
}
return right-left-1;//回文长度
}
string longestPalindrome(string s) {
int n=s.size();
if(n==0) return{};
int start=INT_MAX;
int maxlen=INT_MIN;
for(int i=0;i<n;i++){
int len1=find_str(i,i,s);
int len2=find_str(i,i+1,s);
int cur=max(len1,len2);
if(cur>maxlen){
maxlen=cur;
start=start = i - (maxlen - 1) / 2;
}
}
return s.substr(start,maxlen);
}
};

浙公网安备 33010602011771号