题解 | #最长回文子串#

最长回文子串

http://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af

class Solution {
public:
    int getLongestPalindrome(string A, int n) {
        // write code here
        int m=0;
        vector<vector<int>> dp(n+1,vector<int>(n+1,0));
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<n;j++)
            {
                if(A[i]==A[n-1-j])
                {
                    dp[i+1][j+1]=dp[i][j]+1;
                    if(dp[i+1][j+1]>=m && i+j-dp[i+1][j+1]+1==n-1) m=dp[i+1][j+1];
                }
                else dp[i+1][j+1]=0;
            }
        }
        return m;
    }
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-24 13:32
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务