介绍
输入字符串的回文式闭合是可以从输入字符串中构造的最短回文,其中最终回文以输入字符串开头。
对于这一挑战,我们将考虑双向回文封闭
- 输入字符串的左回文闭合是从输入字符串开始的最短回文。
- 输入字符串的正确回文闭合是以输入字符串结尾的最短回文。
- 输入字符串的双向回文闭合是输入字符串的左回合或右回文中的较短者。
任务
您的任务很简单。给定一个字符串(仅由可打印的ASCII,换行和空白组成),输出该字符串的双向回文式闭包。如果打成平局,则左或右回文式封条都是有效输出。
您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行自变量或函数自变量获取输入,然后将结果打印到STDOUT(或最接近的替代方案)或将其作为字符串返回。
您可以假定输入永远不会是空字符串。
几个例子:
<Input> -> <Output>
"abcdef" -> "abcdefedcba" (or "fedcbabcdef")
"abcba" -> "abcba"
"abcb" -> "abcba"
"cbca" -> "acbca"
最初的想法归功于VisualMelon,最后的想法归功于Martin和Zgarb
本文首先使用并定义了回文封闭,左回文封闭和右回文封闭这两个术语。