解题步骤:
参考代码:
class Solution {
public:string longestPalindrome(string s) {int n=s.size();vector<vector<bool>> dp(n,vector<bool>(n));//最长回文串的起始位置int start=0;//最长回文串的长度int len=0;for(int i=n-1;i>=0;i--){for(int j=i;j<n;j++){if(s[i]==s[j]){dp[i][j]=i+1<j?dp[i+1][j-1]:true;if(dp[i][j]==true){//如果新的回文串的长度大于旧的回文串的长度,就更新起始位置即长度if(j-i+1>len){start=i;len=j-i+1;}}}}}//返回这个最长的回文子串即可return s.substr(start,len);}
};