题解 | #密码截取#

密码截取

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))

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-21 13:38
8月实习会变多吗现在还没找到实习该怎么办...回复的hr好少
码农索隆:3-4月就要开始找,基本上6月份就发offer,7月初已经开始暑期实习了。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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