これはミラーです|
。文字列をミラーリングできる場合、文字列の中央にミラーを貼り付けることができることがわかりました!たとえば、文字列abccba
。半分にカットすると、2つの半分は互いに鏡像になります。
abc <--> cba
したがって、文字列の中央にミラーを貼り付けることができ、新しい文字列はabc|cba
です。場合によっては、文字列の一部のみをミラーリングできます。たとえば、文字列「mirror」。2つのrはミラーリングされていますが、残りのストリングはミラーリングされていません。大丈夫です。互いにミラーリングしない文字列の部分を削除するだけで、次の文字列が取得されます。
r|r
一部の文字列は、複数の場所でミラー化できます。たとえば、「Hello World、xyzzyx」。鏡にたくさんのテキストが映るのが好きなので、鏡を置くのに最適な場所を見つける必要があります。この場合、より長いミラーリングされた文字列を出力し、最後の例と同様に、他のすべてを削除する必要があります。この文字列は次のようになります。
xyz|zyx
一部の文字列はミラーリングできるように見えますが、実際にはミラーリングできません。文字列をどこにもミラーリングできない場合は、何も出力しないでください。
チャレンジ:
printable-asciiのみを含む文字列が与えられた場合、ミラーを配置するのに最適な場所を見つけます。言い換えると、
最大の偶数長のパリンドローム部分文字列を見つけて、パイプ文字「|」で出力します 途中で。
入力の長さは1〜50文字です。
入力にミラー|
や改行は含まれないと想定できます。それを超えて、すべての印刷可能なアスキー文字は公正なゲームです。ミラーリングされた最長のサブストリングが2つのサブストリングの間にある場合、出力するサブストリングを選択できます。たとえば、文字列「abba ollo」の場合、「ab | ba」または「ol | lo」を出力する必要がありますが、どちらを出力してもかまいません。文字列は、大文字と小文字が区別され例えば「ABBA」すべきでない出力は空の文字列|「BA AB」、それが出力する必要があり。
サンプルIO:
"Hello World" --> "l|l"
"Programming Puzzles and Code-Golf" --> Either "m|m" or "z|z"
"abcba" --> ""
"Hulluh" --> "ul|lu"
"abcdefggfedcba" --> "abcdefg|gfedcba"
"abcdefggfabc" --> "fg|gf"
"AbbA" --> "Ab|bA"
"This input is a lot like the last one, but with more characters that don't change the output. AbbA" --> "Ab|bA"
いつものように、これはコードゴルフなので、標準的な抜け穴が適用され、バイト単位の最短回答が勝ちます!