題意
找S中的最長迴文子串,迴文字符串。
如aba,或者abba都是迴文字符串。
題解
class Solution {
public:
string longestPalindrome(string s) {
const int n=s.size();
bool f[n][n];
fill_n(&f[0][0],n*n,false);
int max_len=1,start=0;
for(int i=0;i<n;i++)
{
f[i][i]=true;
for(int j=0;j<i;j++)
{
f[j][i]=(j+1==i&&s[j]==s[i])||(i>j+1&&f[j+1][i-1]&&s[j]==s[i]);
if(f[j][i]&&i-j+1>max_len)
{
max_len=i-j+1;
start=j;
}
}
}
return s.substr(start,max_len);
}
};