Введение
Для тех, кто не знает, палиндром - это когда строка равна строке в обратном направлении (за исключением взаимодействия, пробелов и т. Д.). Примером палиндрома является:
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
это целое предложение. Какая разница между Богом и Боно? Бог не бродит по Дублину, притворяясь Боно ;-)