serega1112

516

Feb 6th, 2021
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.51 KB | None | 0 0
  1. class Solution:
  2.     def longestPalindromeSubseq(self, s: str) -> int:
  3.        
  4.         n = len(s)
  5.        
  6.         dp = [[0] * n for _ in range(n)]
  7.        
  8.         for i in range(n):
  9.             dp[i][i] = 1
  10.            
  11.         for i in range(n-2, -1, -1):
  12.             for j in range(i+1, n):
  13.                 if s[i] == s[j]:
  14.                     dp[i][j] = dp[i+1][j-1] + 2
  15.                 else:
  16.                     dp[i][j] = max(dp[i+1][j], dp[i][j-1])
  17.                    
  18.         return dp[0][n-1]
Advertisement
Add Comment
Please, Sign In to add comment