LeetCode-516-最长回文子序列--动规思想

最长回文子序列

给定一个字符串 s ,找到其中最长的回文子序列,并返回该序列的长度。可以假设 s 的最大长度为 1000 。

例:

输入:

"bbbab"

输出:

 4

解释:一个可能的最长回文子序列为 "bbbb"。

 

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-palindromic-subsequence

 

 

 

 Python代码

class Solution:
    def longestPalindromeSubseq(self, s: str) -> int:   
        dp=[[[]for i in range(len(s))] for i in range (len(s))]
        for i in range(len(s)):
            dp[i][i]=1
            for j in range(0,i):
                dp[i][j]=0
        for j in range(1,len(s)):
            for i in range(j-1,-1,-1) :
                if(s[i]==s[j]):
                    dp[i][j]=dp[i+1][j-1]+2
                else:
                    dp[i][j]=max(dp[i][j-1],dp[i+1][j])
        return max(map(max,dp))

作者:chong-ya-xiao-ma
链接:https://leetcode-cn.com/problems/longest-palindromic-subsequence/solution/dong-tai-gui-hua-si-xiang-by-chong-ya-xi-xxni/
来源:力扣(LeetCode)

 

posted @ 2021-01-17 16:36  _YeLL  阅读(164)  评论(0)    收藏  举报