20 lines
587 B
Python
20 lines
587 B
Python
class Solution:
|
|
def longestPalindrome(self, s: str) -> str:
|
|
if len(s) <= 1:
|
|
return s
|
|
|
|
|
|
dp = [[False for _ in range(len(s))] for _ in range(len(s))]
|
|
|
|
max_length = 1
|
|
max_string = s[0]
|
|
for i in range(len(s)):
|
|
dp[i][i] = True
|
|
for j in range(i):
|
|
if s[j] == s[i] and (i-j <= 2 or dp[j+1][i-1]):
|
|
dp[j][i] = True
|
|
if i-j+1 > max_length:
|
|
max_length = i-j+1
|
|
max_string = s[j:i+1]
|
|
return max_string
|