b_wy_小易唉回文(思维)

小易可以在字符串尾部加入任意数量的任意字符,使其字符串变成回文串。现在请你编写一个程序,程序要能计算出小易可以得到的最短回文串。

思路:问题一定存在解,因为大不了将整个字符串反转再拼接,而noo,这种中间有重复字符的字符串,我们只需反转一下,然后不断截取子串拼接即可

def chk(s):
    i,j=0,len(s)-1
    while i<j:
        if s[i]!=s[j]: return False
        i,j=i+1,j-1
    return True
def solve(s: str):
    t = s[::-1]
    if s == t:
        return s
    for i in range(len(t)-1,-1,-1):
        seq=s+t[i:]
        if chk(seq):
            return seq
    return ""
print(solve(input()))
posted @ 2021-02-17 17:11  童年の波鞋  阅读(96)  评论(0编辑  收藏  举报