Um palíndromo é uma palavra que é seu próprio reverso.
Agora, existem algumas palavras que podem parecer palíndromos, mas não são. Por exemplo, considere a palavra sheesh, sheeshnão é um palíndromo porque seu reverso é hseehsdiferente; no entanto, se considerarmos shuma única letra, é inverso sheesh. Esse tipo de palavra chamaremos de semi-palíndromo.
Especificamente, uma palavra é um semi-palíndromo se pudermos dividir a palavra em um número de pedaços, de modo que, quando a ordem dos pedaços for revertida, a palavra original seja formada. (Para sheeshesses pedaços sh e e sh). Também não exigiremos que nenhum pedaço contenha letras de ambas as metades da palavra (caso contrário, cada palavra seria um semi-palíndromo). Por exemplo, rearnão é um semi-palíndromo porque r ea rpossui um pedaço ( ea) que contém letras de ambos os lados da palavra original. Consideramos que o caractere central em uma palavra de comprimento ímpar não está em nenhum dos lados da palavra; portanto, para palavras com comprimento ímpar, o caractere central deve sempre estar em seu próprio pedaço.
Sua tarefa será pegar uma lista de números inteiros positivos e determinar se eles são um semi-palíndromo. Seu código deve gerar dois valores desiguais consistentes, um se a entrada for um semi-palíndromo e o outro caso contrário. No entanto, a sequência de bytes do seu código deve ser um semi-palíndromo .
As respostas serão pontuadas em bytes, com menos bytes sendo melhores.
Casos de teste
[] -> 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
Programa para gerar mais casos de teste.
emprestável apontou que estes são semelhantes aos palíndromos generalizados de Smarandache . Portanto, se você quiser ler mais, esse é o lugar para começar.