题解 | #密码截取#

密码截取

https://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1

枚举每个位置,往两边扩散,分别考虑回文串长度是奇数和偶数的情况,最后取 max 即可。

originalStr = str(input())

maxLen = 0

for i in range(len(originalStr) - 1):
    if originalStr[i] == originalStr[i + 1]:    # 偶数长度回文子串
        start = i
        end = i + 1

        while start >= 0 and end < len(originalStr) and originalStr[start] == originalStr[end]:
            start -= 1
            end += 1
            maxLen = max(maxLen, end - start - 1)

    if originalStr[i - 1] == originalStr[i + 1]:    # 奇数长度回文子串
        start = i - 1
        end = i + 1

        while start >= 0 and end < len(originalStr) and originalStr[start] == originalStr[end]:
            start -= 1
            end += 1
            maxLen = max(maxLen, end - start - 1)

print(maxLen)

全部评论

相关推荐

字节 飞书绩效团队 (n+2) * 15 + 1k * 12 + 1w
点赞 评论 收藏
分享
头像
10-09 19:35
门头沟学院 Java
洛必不可达:java的竞争激烈程度是其他任何岗位的10到20倍
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务