题解 | #最长回文子串#

最长回文子串

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

class Solution {
public:
    int getLongestPalindrome(string A, int n) {
        // write code here
        int m = A.size();
        int maxlen = 1;
        if (m < 2) {
            return 1;
        }
        vector<vector<bool>> dp(m, vector<bool> (m));
        for(int i=0; i<m;i++){
            dp[i][i] = true;
        }
        for (int L = 2; L <= m; L++){
            for(int i = 0; i < n; i++){
                int j = L + i -1;
                if (j>=n){
                    break;
                }
                if (A[i] != A[j]){
                    dp[i][j] = false;
                } else {
                    if (j - i<3){
                        dp[i][j] = true;
                    }
                    else{
                        dp[i][j] = dp[i+1][j-1];
                    }
                }
                if(dp[i][j] && j-i+1 > maxlen){
                    maxlen = j-i+1;
                }


            }

        }
        return maxlen;
    }
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-21 13:38
8月实习会变多吗现在还没找到实习该怎么办...回复的hr好少
码农索隆:3-4月就要开始找,基本上6月份就发offer,7月初已经开始暑期实习了。
点赞 评论 收藏
分享
程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
喝干太平洋:我是大专 我感觉我当时的简历比你好点 就一个vue吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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