alg-最长回文字符串

Posted smallredness

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了alg-最长回文字符串相关的知识,希望对你有一定的参考价值。

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-最长回文字符串的主要内容,如果未能解决你的问题,请参考以下文章

516. 最长回文子序列(Python)

leetcode-5 最长回文子串(动态规划)

求最长回文子串,O(n)复杂度

求最长回文子串,O(n)复杂度

5. 最长回文子串

Manacher算法最长子回文串