定义dp[left][right]代表s[left:right]是否为回文子串
class Solution:
def longestPalindrome(self, s: str) -> str:
L = len(s)
if L <2:
return s
start = 0
maxlength = 1
sign = []
for _ in range(L):
sign.append([False for i in range(L)])
for right in range(1,L): #外层循环为right
for left in range(0,right): #left maxlength:
start = left
maxlength = right-left+1
return s[start:start + maxlength]
动态规划问题很巧妙, 本题难在要找到一种方法使得遍历到dp[i][j]时,判断dp[i][j]所需的条件都已满足。需注意:构造二维数组时深浅拷贝问题。



