给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。
示例 1:
输入: “babad” 输出: “bab” 注意: “aba”也是一个有效答案。
示例 2:
输入: “cbbd” 输出: “bb”
很难过,写了一个超时的程序。。。但也算解出来了
本人写的如下(超时程序):
class Solution:
def longestPalindrome(self, s):
a = int(len(s))
dit = {}
if a == 1 or a == 0:
return s
else:
for i in range(0, a):
for j in range(i+1, a+1):
if self.check_echo(s[i:j]):
dit[s[i:j]] = j-i
if dit != {}:
return max(dit, key=dit.get)
def check_echo(self, str_1):
str_2 = list(reversed(str_1))
if list(str_1) == list(str_2):
return True
else:
return False
然后参考了这个博客里的解法,不过感觉也不是很优
https://blog.csdn.net/geerniya/article/details/78931752
时间复杂度确实都不低
容我再想想。。。