题解 | #最长回文子串#

最长回文子串

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)


全部评论

相关推荐

05-16 11:16
已编辑
东华理工大学 Java
牛客73769814...:盲猜几十人小公司,庙小妖风大,咋不叫她去4️⃣呢😁
牛客创作赏金赛
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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