LeetCode5. 最长回文子串 Python3

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Victordas/article/details/82686333

给定一个字符串 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
时间复杂度确实都不低

容我再想想。。。

猜你喜欢

转载自blog.csdn.net/Victordas/article/details/82686333