Longest Palindromic Subsequence LeetCode solution in Python
1class Solution:2def longestPalindromeSubseq(self, s: str) -> int:3dp = [[0 for _ in range(len(s))] for _ in range(len(s))]4for k in range(1, len(s) + 1):5for i in range(len(s) - k + 1):6j = k + i - 17if i == j:8dp[i][j] = 19elif i + 1 == j and s[i] == s[j]:10dp[i][j] = 211elif s[i] == s[j]:12dp[i][j] = dp[i + 1][j - 1] + 213else:14dp[i][j] = max(dp[i + 1][j], dp[i][j - 1])15return dp[0][-1]