题意
给一个字符串,找到最长的回文子串。
题解
对串中的每个字符,分别向左右延伸,找到一个回文子串。
回文串长度可以是奇数,也可以是偶数,这得注意。
class Solution {
public:
// 88ms
string longestPalindrome(string s) {
string ans;
for(int i = 0; i < s.length(); ++i){
string oddStr = getPalin(s, i, i);
if(oddStr.length() > ans.length()) ans = oddStr;
string evenStr = getPalin(s, i, i + 1);
if(evenStr.length() > ans.length()) ans = evenStr;
}
return ans;
}
string getPalin(string& s, int l, int r){
while(l >= 0 && r < s.length() && s[l] == s[r]) l--, r++;
return s.substr(l + 1, r - l - 1);
}
};