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
, sheesh
não é um palíndromo porque seu reverso é hseehs
diferente; no entanto, se considerarmos sh
uma ú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 sheesh
esses 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, rear
não é um semi-palíndromo porque r ea r
possui 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.