华为机试-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
                


全部评论

相关推荐

点赞 评论 收藏
分享
ResourceUtilization:差不多但是估计不够准确,一面没考虑到增长人口,另一方面也没考虑到能上大学的人数比例,不过我猜肯定只多不少
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务