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