class Solution {
public:
string longestPalindrome(string s)
{
const int n=s.size();
if(n==0)
return "";
else if(n==1)
return s;
else
{
bool isPalin[n][n]={false};
for(int i=0;i<n;++i)
isPalin[i][i]=true; //每个单独的字符都是一个回文
int begin=0;
int length=INT_MIN;
for(int i=n-2;i>=0;--i) //从倒数第二个字符开始
for(int j=i+1;j<n;++j)
{
if(s[j]==s[i]&& (j==i+1 || isPalin[i+1][j-1])) //如果i到j之间是回文
{
isPalin[i][j]=true; //置为true
if(length<j-i+1) //更新length 和 begin
{
begin=i;
length=j-i+1;
}
}
}
return s.substr(begin,length);
}
}
};
Longest Palindromic Substring
最新推荐文章于 2024-10-11 23:48:39 发布