最长回文子串(Python3)
问题描述:
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
示例:
输入: "babad"
输出: "bab"
注意: "aba" 也是一个有效答案。
解决思路:从字符串的第一个字符开始遍历到最后一个字符,判断该字符到第一个字符的子串是否为回文,设立变量更新最长的回文子串长度。
代码如下^-^:
class Solution: def longestPalindrome(self, s: str) -> str: if s == None: return None length = len(s) if length <= 1: return s dp = [[0 for i in range(length)] for i in range(length)] ss = s[0] re = 1 for i in range(0,length): for j in range(0,i+1): if i-j<=1: if s[j]==s[i]: dp[j][i]=1 if re < i-j+1: ss = s[j:i+1] re = i-j+1 else: if s[j]==s[i] and dp[j+1][i-1]: dp[j][i]=1 if re < i-j+1: ss = s[j:i+1] re = i-j+1 return ss
时间与空间复杂度:
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/probl...
相关推荐
chuckchen 2020-10-31
Will0 2020-10-12
Dreamhome 2020-10-09
xirongxudlut 2020-09-28
星辰大海的路上 2020-09-13
chaochao 2020-08-31
猪猪侠喜欢躲猫猫 2020-08-17
快递小可 2020-08-16
shengge0 2020-07-26
巩庆奎 2020-07-21
张文倩数据库学生 2020-07-19
xirongxudlut 2020-07-18
Ericbig 2020-07-18
kyelu 2020-07-09
liangzhouqu 2020-07-07
GuoSir 2020-06-28
chaigang 2020-06-27
pythonxuexi 2020-06-25