14
我应该在哪里放镜子?
这是一面镜子:|。我刚刚发现,如果字符串可以自身镜像,则可以在字符串中间粘贴一个镜像!例如,字符串abccba。如果将其切成两半,则它们是彼此的镜像: abc <--> cba 因此,我们可以在字符串中间插入一个镜像,新字符串为abc|cba。有时,仅字符串的一部分可以自身镜像。例如,字符串“ mirror”。两个r被镜像,但是字符串的其余部分不是。没关系,我们将删除字符串中彼此不镜像的部分,然后得到以下字符串: r|r 某些字符串可以在多个位置进行镜像。例如,“ Hello World,xyzzyx”。我喜欢镜子上反射很多文字,因此您需要找到放置镜子的最佳位置。在这种情况下,您应该输出更长的镜像字符串,就像我们上一个示例一样,删除其他所有内容。该字符串变为: xyz|zyx 有些字符串看起来像它们可以被镜像,但实际上不能。如果字符串无法在任何地方进行镜像,则不应输出任何内容。 挑战: 给定仅包含printable-ascii的字符串,找到放置镜子的最佳位置。换一种说法, 找到最大的等长回文子字符串,然后用竖线字符“ |”输出 在它的中间。 输入长度为1至50个字符。 您可以假定输入将不包含镜像|或换行符。除此之外,所有可打印的ASCII字符都是公平的游戏。如果最长的镜像子字符串绑在两个子字符串之间,则可以选择输出哪个。例如,对于字符串“ abba ollo”,必须输出“ ab | ba”或“ ol | lo”,但是输出哪一个都没有关系。字符串是大小写敏感的,例如,“利群”应该没有输出“AB | BA”,它应该输出空字符串。 样本IO: "Hello World" --> "l|l" "Programming Puzzles and Code-Golf" --> Either "m|m" or "z|z" "abcba" --> "" "Hulluh" --> "ul|lu" "abcdefggfedcba" …