栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

最长回文子串---2021/10/06

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

最长回文子串---2021/10/06

题目描述如下:
最长回文子串

这里只考虑了暴力解法,关于中心扩展,动态规划啥的没考虑清楚。
关于暴力法,这里用一句话来概括:判断所有的子串是否为回文串。
以下为代码:
(其中有两个疑惑点。1、对于python的循环语法的使用不熟练;2、为啥返回的是s[i:j+1]而不是s[i:j],毕竟判断的时候是s[i:j],百思不得其解啊啊啊。我一开始返回的是s[i:j],但是不对,参考大佬的代码,写的是s[i:j+1],但是我这里还是很不理解)

class Solution(object):
    def longestPalindrome(self, s):
        """
        :type s: str
        :rtype: str
        """
        
        length=len(s)
        if len < 2 :
            return s
        max_len=0
        res=s[0]

        for i in range(length-1):
            for j in range(i+1,length):
                    if j-i+1 > max_len and self.valid(s,i,j):
                     max_len=j-i+1
                     res=s[i:j+1]
        return res

    def valid(self,s,left,right):
            while left < right:
                if s[left]!= s[right]:
                    return False
                left +=1
                right-=1
            return True
        
        
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/296145.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号