Це дзеркало: |
. Я щойно з’ясував, що можна наклеїти дзеркало посередині струни, якщо струна може бути дзеркальною на собі! Наприклад, рядок abccba
. Якщо розрізати його навпіл, дві половинки - це дзеркальні зображення один одного:
abc <--> cba
Отже, ми можемо приклеїти дзеркало в середину струни, і наша нова струна - це abc|cba
. Іноді дзеркально відображається лише частина струни. Наприклад, рядок "дзеркало". Два дзеркальних дзеркальних дзеркальних, але решта рядка не є. Це нормально, ми просто видалимо частини рядка, які не дзеркально відображають одна одну, і отримаємо наступну рядок:
r|r
Деякі рядки можна відобразити в декількох місцях. Наприклад, "Hello World, xyzzyx". Мені подобається, що в дзеркалі відображено багато тексту, тому вам потрібно знайти найкраще місце, щоб поставити моє дзеркало. У цьому випадку вам слід вивести довгу дзеркальну рядок і, як і наш останній приклад, видалити все інше. Цей рядок стає:
xyz|zyx
Деякі струни виглядають так, ніби вони можуть бути дзеркальними, але насправді не можуть. Якщо рядок не можна відобразити ніде, ви нічого не повинні виводити.
Змагання:
З огляду на рядок, що містить лише друковані файли, знайдіть найкраще місце, щоб поставити своє дзеркало. Іншими словами,
Знайдіть найбільшу паліндромну підрядок парної довжини, а потім виведіть її з символом труби '|' посеред нього.
Вхід буде довжиною 1-50 символів.
Можна припустити, що вхід не буде містити дзеркала |
чи нові рядки. Крім цього, всі символи для друку-ascii - це чесна гра. Якщо найдовша дзеркальна підрядка пов'язана між двома підрядками, ви можете вибрати, яку з них вивести. Наприклад, для рядка "abba ollo" ви повинні вивести "ab | ba" або "ol | lo", але не має значення, який ви виведете. Рядки відрізняються від регістру, наприклад, "ABba" не повинен виводити "AB | ba", він повинен виводити порожній рядок.
Зразок 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"
Як завжди, це код-гольф, тому застосовуються стандартні лазівки, і найкоротша відповідь у байтах виграє!