Введение
Палиндромное замыкание входной строки - это самый короткий палиндром, который может быть построен из входной строки, где последний палиндром начинается с входной строки.
Для этой задачи мы рассмотрим двустороннее палиндромное закрытие, так что
- Левое палиндромное закрытие входной строки - самый короткий палиндром, который начинается с входной строки.
- Правое палиндромное закрытие входной строки - самый короткий палиндром, который заканчивается входной строкой.
- Двустороннее палиндромное замыкание входной строки является короче левого или правого палиндромного замыкания входной строки.
задача
Ваша задача проста. Если задана строка (состоящая только из печатного ASCII, новых строк и пробелов), выведите двустороннее палиндромное замыкание этой строки. В случае галстука допустимы выходные данные либо левого, либо правого палиндромного замыкания.
Вы можете написать программу или функцию, принимая ввод через STDIN (или ближайшую альтернативу), аргумент командной строки или аргумент функции, и либо печатая результат в STDOUT (или ближайшую альтернативу), либо возвращая его в виде строки.
Вы можете предположить, что ввод никогда не будет пустой строкой.
Несколько примеров:
<Input> -> <Output>
"abcdef" -> "abcdefedcba" (or "fedcbabcdef")
"abcba" -> "abcba"
"abcb" -> "abcba"
"cbca" -> "acbca"
Начальная идея идёт в VisualMelon, последняя идея с помощью Мартина и Згарба
Термины палиндромное закрытие, лево-паллиндромное закрытие и право-палиндромное закрытие были впервые использованы и определены в этой статье .