Вступ
Для тих, хто не знає, паліндром - це коли рядок дорівнює рядку назад (за винятком інтерпункції, пробілів тощо). Прикладом паліндром є:
abcdcba
Якщо ви скасуєте це, ви отримаєте:
abcdcba
Який же. Тому ми називаємо це паліндром. Щоб паліндромізувати речі, розглянемо приклад рядка:
adbcb
Це не паліндром. Щоб паліндромізувати це, нам потрібно об'єднати повернутий рядок у початковий рядок праворуч від початкової рядки , залишивши недоторканими обидві версії. Чим коротше, тим краще.
Перше, що ми можемо спробувати, це наступне:
adbcb
bcbda
^^ ^^
Не всі символи відповідають, тому це не правильне положення для зворотного рядка. Ми йдемо один крок вправо:
adbcb
bcbda
^^^^
Це також не відповідає всім персонажам. Ми робимо ще один крок вправо:
adbcb
bcbda
Цього разу всі персонажі відповідають . Ми можемо об'єднати обидва рядки, залишивши недоторканими . Кінцевий результат:
adbcbda
Це паліндромізована струна .
Завдання
Давши рядок (щонайменше з одним символом), що містить лише малі літери (або великі регістри , якщо це краще підходить), виведіть паліндромізований рядок .
Тестові справи
Input Output
abcb abcba
hello hellolleh
bonobo bonobonob
radar radar
hex hexeh
Це код-гольф , тому подання з найменшою кількістю байтів виграє!
obonobo
було б кращим рішенням тестового випадку.
bono b o nob
це ціле речення. Яка різниця між Богом і Боно? Бог не блукає по Дубліну, роблячи вигляд, що є Боно ;-)