题解 | #最长回文子串#

最长回文子串

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;
    }
    
};
全部评论

相关推荐

02-06 16:33
门头沟学院 Java
Phoenix_Re...:很少最多一两个,大多数保研或者摆烂等着考研
点赞 评论 收藏
分享
求求要我吧:你教育经历放在下面干什么,而且27届还是28届啊()另外看你简历有两面,通常来说投递运营岗位一面简历就够了。另外个人总结要写也放在简历最下面,然后你奖项那里是2019年的哇哈哈,那你究竟投递的是社招还是实习?实习的话你是第几届是肯定要写出来的,社招的话你这个工作经历又太短太花了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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