解法一 Brute Force
遍历每个位置,并查看是否存在以这个位置为中心的(奇和偶)回文。
class Solution {
public:
string longestPalindrome(string s) {
if(s.empty()) return s;
int mx=1, start=0;
for(int i=0;i<s.size()-1;i++){
updateMx(s, i, i, start, mx); // odd
updateMx(s, i, i+1, start, mx); // even
}
return s.substr(start, mx);
}
void updateMx(string s, int l, int r, int& start, int& mx){
while(l>=0 && r<s.size() && s[l]==s[r]){
l--; r++;
}
if(mx<r-l-1){ // at s[l]!=s[r]
mx = r-l-1;
start=l+1;
}
}
};
class Solution {
private