题解 | #密码截取#

密码截取

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

def fn(s1, s2):
    res = 0
    l = min(len(s1), len(s2))
    if l > 0:
        for j in range(l):
            if s1[j] == s2[j]:
                if 2*(j+1) > res:
                    res = 2*(j+1)
            else:
                break
    return res

def run(seq):
    res = []
    for i in range(1, len(seq)):
        tmp = 1
        tmp1 = seq[:i][::-1]
        tmp2 = seq[i:]
        tmp = fn(tmp1, tmp2)
        tmp1 = seq[:i+1][::-1]
        tmp2 = seq[i:]
        tmp = max(fn(tmp1, tmp2)-1, tmp)
        res.append(tmp)
    return max(res)

seq = input().strip()
print(run(seq))
全部评论

相关推荐

02-19 19:57
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务