516. Longest Palindromic Subsequence
Given a string s
, find the longest palindromic subsequence's length in s
.
A subsequence is a sequence that can be derived from another sequence by deleting some or no elements without changing the order of the remaining elements.
def longestPalindromeSubseq(self, s: str):
L = len(s)
if len(s) == 1:
return 1
M = [[0]*L for _ in range(L)]
for i in range(L):
M[i][i] = 1
for cur in range(L):
for start in range(cur-1, -1, -1):
if s[cur] == s[start]:
M[start][cur] = M[start+1][cur-1]+2
else:
M[start][cur] = max(M[start+1][cur], M[start][cur-1]) # Tricky Line!!
return M[0][L-1]
Comments
Post a Comment