码迷,mamicode.com
首页 > 其他好文 > 详细

alg-最长回文字符串

时间:2019-07-18 16:38:01      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:long   ++   false   public   std   ons   vector   rom   ==   

class Solution {
public:
    std::string longestPalindrome(const std::string& s) {
        if (s.empty()) {
            return "";
        }

        std::vector<std::vector<bool>> dp(s.size(),std::vector<bool>(s.size(),false));
        int left=0;
        int right=0;
        int max_len=0;

        for(int i=0;i<s.size();i++) {
            dp[i][i]=true;
        }

        for(int i=0; i<s.size();++i) {
            for(int j=0;j<i;++j) {
                dp[j][i]=(s[i]==s[j]&&(i-j<2||dp[j+1][i-1]));
                if (dp[j][i]&&max_len<i-j+1) {
                    max_len=i-j+1;
                    left=j;
                    right=i;
                }
            }
        }
        return s.substr(left, right - left + 1);
    }  
};

alg-最长回文字符串

标签:long   ++   false   public   std   ons   vector   rom   ==   

原文地址:https://www.cnblogs.com/smallredness/p/11208056.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!