码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode刷题8——最长回文子串

时间:2020-01-02 20:34:43      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:http   style   div   sel   stp   大于   pre   背景   etc   

一、要求

技术图片

 

 二、背景

(1)回文:正反读都相同的字符串

(2)找到字符串中对应的索引

S:字符串

s:想要求索引的字符

(1) S.index(s) 只能找到第一个s对应的索引,不能求完

(2) [i for in range(len(S)) if S[i]==s]  #可以找完全部的索引

三、解题思路

 1.依次取字符串中字符,找到后面与之相等的字符对应的索引,截取这段字符串并进行回文函数的判断,若新回文长度大于老回文长度,那么用新回文替换老回文

技术图片

 

 

class Solution:
    def longestPalindrome(self, s: str) -> str:
        if s:
            longpalindromes=s[0]
            for i in range(len(s)):
                data= s[i+1::]
                b=s[i]
                index=[r for r in range(len(data)) if data[r] == b]
                for j in index:
                    new=self.palindrome(s[i:i+j+2])
                    if len(new)>len(longpalindromes):
                        longpalindromes=new
            return longpalindromes
        else:
            return ‘‘

    def palindrome(self,str):
        revers_str =str[::-1]
        if revers_str==str:
            return str
        else:
            return []

 (2)时间复杂度很高,如何降低时间复杂度?

LeetCode刷题8——最长回文子串

标签:http   style   div   sel   stp   大于   pre   背景   etc   

原文地址:https://www.cnblogs.com/bethansy/p/12080925.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!