题解 | #最长回文子串#

最长回文子串

https://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507

import sys
def find1(i,n,k):
    if i+k < len(n) and i-k >= 0 and n[i-k] == n[i+k]:
        return find1(i,n,k+1)
    else:
        return 2*k-1

def find2(i,j,n,k):
    if j+k < len(n) and i-k >= 0 and n[i-k] == n[j+k]:
        return find2(i,j,n,k+1)
    else:
        return 2*k

n = input()
m = len(n)

k = 1
for i in range(1,m-1):
    if n[i] == n[i+1]:
        k = max(k,find2(i,i+1,n,0))
    elif n[i-1] == n[i+1]:
        k = max(k,find1(i,n,2))
print(k)


全部评论

相关推荐

牛客618272644号:佬携程工作怎么样,强度大吗
点赞 评论 收藏
分享
10-15 03:05
门头沟学院 Java
CADILLAC_:凯文:我的邮箱是死了吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务