string longestPalindrome(string s) {
if(s.empty())
return "";
else if(s.size()== 1)
return s;
else{
int min_start=0, max_len=1;
for(int i=0; i < s.size();){
if(s.size()-i <= max_len / 2)
break;
int j = i, k = i;
while(k < s.size()-1 && s[k+1] == s[k])
++k;
i = k + 1;
while(k < s.size()-1 && j > 0 && s[k+1] == s[j-1]){
++k;
--j;
}
int new_len = k - j + 1;
if(new_len > max_len){
min_start = j;
max_len = new_len;
}
}
return s.substr(min_start, max_len);
}
最长回文子串
最新推荐文章于 2024-09-30 14:00:28 发布