题解 | #最长回文子串#

最长回文子串

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)


全部评论

相关推荐

皮格吉:不,有的厂子面试无手撕,可以试试。都是一边学一边面。哪有真正准备好的时候,别放弃
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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