题目
解法1:动态规划
这边的动态规划需要注意两个点:
- 长度为1和2的需要单独判断
- 二维dp中的一维代表开始,二维代表结束。遍历不能遍历两维,而是遍历长度和其中一维,这样才能保证子问题已经计算
class Solution:
def longestPalindrome(self, s: str) -> str:
if not s:
return ''
n = len(s)
dp = [[False]*n for _ in range(n)]
max_len = 1
start = 0
# check for substring with length 1 and 2
for i in range(n):
dp[i][i] =