网易2021校招笔试-测试工程师(有道)——小易爱回文

小易得到了一个仅包含大小写英文字符的字符串,该字符串可能不是回文串。(“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串,“asds”就不是回文串。)

小易可以在字符串尾部加入任意数量的任意字符,使其字符串变成回文串。

现在请你编写一个程序,程序要能计算出小易可以得到的最短回文串。

时间限制:C/C++ 1秒,其他语言2秒

空间限制:C/C++ 256M,其他语言512M

输入描述:

一行包括一个字符串    。

输出描述:

一行包括一个字符串,代表答案。

示例1

输入例子:

noon

输出例子:

noon

示例2

输入例子:

noo

输出例子:

noon

示例3

输入例子:

helloworld

输出例子:

helloworldlrowolleh

本题通过模拟,可以发现规律,只需要找到原始字符串和反方向字符串中共同的部分,然后在原始字符串后面加上反向字符串中两者共有的部分后面的字符串即可得到想要的答案。

string=input()

if string[:]==string[::-1]:
    print(string)
else:
    initstring=string
    reversestring=string[::-1]
    reindex=0
    for i in range(len(initstring)):
        if initstring[i]==reversestring[reindex]:
            if reversestring[:len(initstring)-i]==initstring[i:]:
                reindex=len(initstring)-i
                break
        else:
            continue
    initstring+=reversestring[reindex:]
    print(initstring)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值