Паліндром - це слово, яке є його зворотним.
Зараз є кілька слів, які можуть виглядати як паліндроми, але ні. Для прикладу розглянемо слово sheesh
, sheesh
не паліндром , тому що його зворотне , hseehs
який відрізняється, проте , якщо ми вважаємо sh
, що одна буква, то це зворотне sheesh
. Таке слово ми назвемо напівпаліндром.
Зокрема, слово - це напівпаліндром, якщо ми можемо розділити слово на деяку кількість фрагментів, таким чином, коли порядок відрізків буде відмінено, формується початкове слово. (Для sheesh
тих sh e e sh
шматок є ) Ми також не вимагатимемо, щоб жоден фрагмент не містив букви з обох половин слова (інакше кожне слово було б напівпаліндром). Наприклад, rear
це не напівпаліндром, тому що він r ea r
має фрагмент ( ea
), який містить літери з обох сторін початкового слова. Ми вважаємо, що центральний символ у слові непарної довжини не має жодної сторони слова, таким чином, для слів із непарною довжиною центральний символ завжди повинен бути у власному відрізку.
Вашим завданням буде скласти список натуральних чисел і визначити, чи є вони напівпаліндром. Ваш код повинен виводити два послідовні нерівні значення, одне, якщо вхід є напівпаліндром, а інше інакше. Однак послідовність байтів вашого коду повинна бути самою напівпаліндром .
Відповіді будуть набрані в байтах, менша кількість байтів буде кращою.
Тестові кейси
[] -> True
[1] -> True
[2,1,2] -> True
[3,4,2,2,3,4] -> True
[3,5,1,3,5] -> True
[1,2,3,1] -> False
[1,2,3,3,4,1] -> False
[11,44,1,1] -> False
[1,3,2,4,1,2,3] -> False
Програма для генерації більше тестів.
нудно вказував, що вони схожі на генералізовані смарандашські паліндроми . Тож якщо ви хочете ще трохи прочитати, це саме одне місце для початку.