题解 | #最长回文子串#

最长回文子串

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

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

相关推荐

秋招投简历提醒助手:个人经验是,一般面二十场左右就会进入侃侃而谈阶段。我今年七月末的时候开始的第一次面试,都是很多不会,回复很慢。后面慢慢迭代,到九月中的时候基本上面啥说啥,很放松的状态
远程面试的尴尬瞬间
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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