516 Longest Palindromic Subsequence
class Solution(object):
def longestPalindromeSubseq(self, s):
"""
:type s: str
:rtype: int
"""
n = len(s)
dp = [[0 for i in range(n)] for j in range(n)]
for i in range(n-1, -1, -1):
dp[i][i] = 1
for j in range(i+1, n, 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 dp[0][n-1]