华为机试-HJ85 最长回文子串

描述

给定一个仅包含小写字母的字符串,求它的最长回文子串的长度。
所谓回文串,指左右对称的字符串。
所谓子串,指一个字符串删掉其部分前缀和后缀(也可以不删)的字符串
数据范围:字符串长度1\le s\le 350\1s350 
进阶:时间复杂度:O(n)\O(n) ,空间复杂度:O(n)\O(n) 

输入描述:

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

输出描述:

返回最长回文子串的长度

示例1

输入:
cdabbacc
复制
输出:
4
复制
说明:
abba为最长的回文子串
while True:
    try:
        s1=input()
        length=0
        for i in range(0,len(s1)-1):
            for j in range(i+1,len(s1)):
                if s1[i:j]+s1[i:j][::-1] in s1 and len(s1[i:j])*2>length:
                    length=len(s1[i:j])*2
                if s1[i:j]+s1[i:j-1][::-1] in s1  and ((len(s1[i:j])-1)*2+1)>length:
                    length=(len(s1[i:j])-1)*2+1
        print(length)
    except:
        break
                


全部评论

相关推荐

想踩缝纫机的小师弟练...:不理解你们这些人,要放记录就把对方公司名字放出来啊。不然怎么网暴他们
点赞 评论 收藏
分享
04-13 20:21
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务