题解 | #最长回文子串#

最长回文子串

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

# 不能用二分法,因为 4长度的窗口 有回文,不代表 3长度的窗口也能有回文,没有递进性。
def judge(nums):        # 判断回文
    l,r = 0,len(nums)-1
    while l<=r and nums[l]==nums[r]: 
        l += 1
        r -= 1
    if l > r:
        return True
    return False 

def check(nums,x):      # 检查x长度 是否存在为回文。
    for i in range(len(nums)-x+1):  # i 是一段窗口的起始位置。x 是窗口长度。
        if judge(nums[i:i+x]):
            return True 
    return False 
# print(check(['a','b','b','a'],4))
if __name__=='__main__':
    a = list(input())
    n = len(a)
    max_length = 0
    for i in range(n+1):
        if check(a,i):
            max_length = i 
    print(max_length)


全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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