Палиндром - это слово, обратное ему.
Теперь есть некоторые слова, которые могут выглядеть как палиндромы, но это не так. Например, рассмотрим слово sheesh
, sheesh
не являющееся палиндромом, потому что его противоположность - hseehs
это другое, однако, если мы рассмотрим sh
одну букву, то наоборот sheesh
. Такое слово мы будем называть полупалиндром.
В частности, слово является полупалиндромом, если мы можем разделить его на некоторое количество фрагментов, чтобы при изменении порядка фрагментов формировалось исходное слово. (Для sheesh
этих чанков есть sh e e sh
) Мы также не будем требовать, чтобы чанк содержал буквы из обеих половин слова (иначе каждое слово было бы полупалиндромом). Например rear
, не является полупалиндромом, потому что r ea r
имеет chunk ( 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
Программа для генерации большего количества тестов.
Борьори указал, что они похожи на обобщенные палиндромы смарандаш . Так что, если вы хотите продолжить чтение, начните с одного.