Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution:
- def longestPalindrome(self, s: str) -> str:
- n = len(s)
- if n < 1:
- return ''
- longest_palindrome = s[0]
- dp = [[False]*n for _ in range(n)]
- for gap in range(n):
- for start in range(n-gap):
- end = start + gap
- if start == end:
- dp[start][end] = True
- continue
- dp[start][end] = s[start] == s[end]
- if end - start > 1:
- dp[start][end] &= dp[start+1][end-1]
- if dp[start][end] and (end - start + 1) > len(longest_palindrome):
- longest_palindrome = s[start:end+1]
- return longest_palindrome
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement