回文串文回
* * * *
拉格朗日计划
* * * *
回文串文回

给定一个字符串,在其后添加最少数量的字符使之成为回文串并输出该回文串。 例如输入为Palindromemord时, 应当输出PalindromemordnilaP.。

本题难度:



解答

由于输入的字符串都很短,所以只需依次尝试将输入字符串的前缀倒置后添加到其尾部能否形成回文串直到找到第一个符合要求的前缀为止。

以下代码中的i从-99(所有的输入长度都小于99)开始是为了包含前缀为空串的情况(即输入的字符串已经是回文串了),用其他方式会增加代码长度。

最终代码有五行。

代码长度:86字节 vs. 全站第一:81字节。

注:本解法获全站第二。

import sys
for a in sys.argv[1:]:
  i=-99
  while(s:=a+a[i::-1])!=s[::-1]:i+=1
  print(s)