class Solution:
def longestPalindrome(self, s: str) -> str:
# 动态规划
dp=[[False for _ in range(len(s))] for _ in range(len(s))]
for i in range(len(s)):
dp[i][i]=True
maxlen=1
start=0
for j in range(1,len(s)):
for i in range(j):
if s[i]!=s[j]:
dp[i][j]=False
else:
if j-i<3:
dp[i][j]=True
else:
dp[i][j]=dp[i+1][j-1]
if dp[i][j]==True and j-i+1>maxlen:
maxlen=j-i+1
start=i
return s[start:start+maxlen]
LEETCODE 5. 最长回文子串
最新推荐文章于 2024-10-01 05:04:32 发布