题解 | #密码截取#

密码截取

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

s = input()
dp1 = [1 for _ in range(len(s))]
dp2 = [1 for _ in range(len(s))]
# aba型
for i in range(1, len(s)):
    if i - 1 - dp1[i - 1] >= 0:
        if s[i - 1 - dp1[i - 1]] == s[i]:
            dp1[i] = dp1[i - 1] + 2
# abba型
for i in range(1, len(s)):
    if s[i - 1] == s[i]:
        dp2[i] = 2
    if i - 1 - dp2[i - 1] >= 0:
        if s[i - 1 - dp2[i - 1]] == s[i]:
            dp2[i] = dp2[i - 1] + 2
print(max(dp1 + dp2))

全部评论

相关推荐

哞客37422655...:github如果提交不是很多 可以不写 可能会是减分项。之前听别人讲过的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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