美文网首页
HJ85 最长回文子串

HJ85 最长回文子串

作者: Ribosome_He | 来源:发表于2021-10-03 09:30 被阅读0次

描述
给定一个仅包含小写字母的字符串,求它的最长回文子串的长度。
所谓回文串,指左右对称的字符串。
所谓子串,指一个字符串删掉其部分前缀和后缀(也可以不删)的字符串
(注意:记得加上while处理多个测试用例)

输入描述:
输入一个仅包含小写字母的字符串

输出描述:
返回最长回文子串的长度

#暴力解法
'''
while True:
    try :
        l = input()
        result= 0 #存放最大长度
        for i in range(len(l)): #从第一个字符开始遍历
            maxL = result + 1 #存放最大长度+1
            while i + maxL < len(l):
                if l[i:i+maxL] == l[i:i+maxL][::-1]:
                    result = maxL #存放新的最大长度
                maxL += 1
        print(result)
    except:
        break
'''

while True:
    try:
        s = input()
        result = "" #存放回文子串
        for i in range(len(s)): #遍历
            start = max(0, i-len(result)-1) #精髓在此,下标减去回文串的长度-1,即是下一个判断的回文串的开头
            temp = s[start: i+1] #回文串去掉头尾也是回文,所以加上头尾,判断是否是回文
            if temp == temp[::-1]: #有偶数长度和奇数长度的回文,所以判断[0:i]和[1:i],直到有两个字符相同才开始有回文
                result = temp
            else:
                temp = temp[1:]
                if temp == temp[::-1]:
                    result = temp
        if result:
            print(len(result))
    except:
        break

相关文章

  • HJ85 最长回文子串

    描述给定一个仅包含小写字母的字符串,求它的最长回文子串的长度。所谓回文串,指左右对称的字符串。所谓子串,指一个字符...

  • 最长回文子串

    最长回文子串——Manacher 算法 1. 问题定义 最长回文字符串问题:给定一个字符串,求它的最长回文子串长度...

  • 字符串算法

    最长公共前缀 最长回文串 最长回文子序列 最长公共子串 反转单词顺序列 反转字符串 字符串转数字 IP-int互转

  • 打卡-最长回文子串

    最长回文子串(中等)

  • 最长回文子序列

    该问题区别于最长回文子串,子串必须是连续的,而子序列则可以跳跃,例如AABCAA的最长回文子串为AA,但是它的最长...

  • Manacher算法

    最长回文子串问题# 给定一个字符串,找出最长的回文子串,如"waabwswbfd",则最长子串为bwsb. 中心试...

  • 最长回文子串问题—Manacher算法

    最长回文串问题是一个经典的算法题。 0. 问题定义 最长回文子串问题:给定一个字符串,求它的最长回文子串长度。如果...

  • LeetCode 第647题:回文子串

    1、前言 2、思路 此题与最长回文子串很像,只不过那个是求最长的回文子串,而这个是求回文子串的数目。但是他们的解法...

  • C语言实现求最长回文子串

    最长回文子串的概念 回文串是指正序和反序都一样的字符串,例如:Str1 = "AbbA",则Str1的最长回文子串...

  • Manacher's Algorithm算法分析Java

    Manacher's Algorithm俗称马拉车算法,对于求字符串中最长回文子串效率极高。 在求最长回文子串的时...

网友评论

      本文标题:HJ85 最长回文子串

      本文链接:https://www.haomeiwen.com/subject/zbyvnltx.html