class Solution {
public:
string longestPalindrome(string s) {
const int len = s.length();
int maxlen = 1, ii = 0, jj = 0;
bool f[len+1][len+1];
for(int i = 0; i <= len; i++){
for(int j = 0; j <= len; j++)
f[i][j] = false;
}
//i-i, i i+1
for(int i = 0; i < len; i++){
f[i][i] = true;
if(s[i]==s[i+1]){
f[i][i+1] = true;
maxlen = 2;
ii = i;
}
}
for(int i = 3; i <= len; i++){
for(int j = 0; j < len; j++){
if(j+i-1<len && s[j] == s[j+i-1] && f[j+1][j+i-2]){
f[j][j+i-1] = true;
if(maxlen < i){
maxlen = i;
ii = j;
jj = i + j - 1;
}
}
}
}
return s.substr(ii, maxlen);
}
};
Longest Palindromic Substring
最新推荐文章于 2021-06-06 16:59:59 发布