最长回文子串思路

描述

对于一个字符串,请设计一个高效算法,计算其中最长回文子串的长度。

给定字符串A以及它的长度n,请返回最长回文子串的长度。


求助一下,我做这道题时的思路,是将字符串翻转,然后求他们的最大公共子串,但是为什么有一部分测试用例无法通过,代码如下
def get_lenth(lt,num):
    arr=list(lt)
    arr.reverse()
    new_lt=''.join(arr)
    curlenth=0
    maxlenth=0
    start=0
    end=1
    while end<=num:
        if lt[start:end] in new_lt:
            curlenth+=1
            end+=1
        else:
            curlenth=0
            start=end-1
            end=start+1
        maxlenth=max(curlenth,maxlenth)
    return maxlenth


while True:
    try:
        myinput=input()
        arr=myinput.split(',')
        print(get_lenth(arr[0].replace('"', ''), int(arr[1])))
    except:
        break

全部评论
你这里的最大公共子串是连续的吗
点赞 回复 分享
发布于 2021-08-25 08:55
区间dp来做会好点吧
点赞 回复 分享
发布于 2021-08-29 01:55
最优解叫Manacher 可以优化到O(N)
点赞 回复 分享
发布于 2021-08-30 18:02

相关推荐

lxylxy_:其实是美团卷起来了
点赞 评论 收藏
分享
死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务