class Solution {
public:
string longestPalindrome(string s) {
int len = s.size();
if(len < 2) return s;
int start = 0;
int max = 1;
vector<vector<int>> dp(len,vector<int>(len));
for(int i = 0; i < len; i++)
{
dp[i][i] = 1;
if(i < len-1 && s[i] == s[i+1])
{
dp[i][i+1] = 1;
start = i;
max = 2;
}
}
for(int l = 3;l <=len;l++)
{
for(int i=0;i < len-l+1;i++)
{
int j = i+l-1;
if(s[i]==s[j] && dp[i+1][j-1] == 1)
{
dp[i][j] = 1;
start = i;
max = l;
}
}
}
return s.substr(start,max);
}
};
leetcode每日一题第八十二天
最新推荐文章于 2024-07-12 21:04:18 发布