![17368230-b8610b38c6a38d95.png](https://i-blog.csdnimg.cn/blog_migrate/da10cf96c730b5ecf77603186c6912a3.webp?x-image-process=image/format,png)
516. Longest Palindromic Subsequence
class Solution(object):
def longestPalindromeSubseq(self, s):
"""
:type s: str
:rtype: int
"""
m = len(s)
if m <= 1:
return m
dp = [[0 for i in range(m)] for j in range(m)]
for j in range(m):
dp[j][j] = 1
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+1][j], dp[i][j-1])
return dp[0][m-1]