Un palíndromo es una palabra que es su propio reverso.
Ahora hay algunas palabras que pueden parecer palíndromos pero no lo son. Por ejemplo, considere la palabra sheesh
, sheesh
no es un palíndromo porque su reverso es hseehs
diferente, sin embargo, si consideramos sh
que es una sola letra, entonces es reverso sheesh
. Este tipo de palabra la llamaremos semi-palíndromo.
Específicamente, una palabra es un semi-palíndromo si podemos dividir la palabra en un cierto número de fragmentos, de modo que cuando se invierte el orden de los fragmentos, se forma la palabra original. (Para sheesh
esos fragmentos son sh e e sh
) También requeriremos que ningún fragmento contenga letras de ambas mitades de la palabra (de lo contrario, cada palabra sería un semi-palíndromo). Por ejemplo, rear
no es un semi-palíndromo porque r ea r
tiene un fragmento ( ea
) que contiene letras de ambos lados de la palabra original. Consideramos que el carácter central en una palabra de longitud impar no está en ninguno de los lados de la palabra, por lo tanto, para las palabras con longitud impar, el carácter central siempre debe estar en su propio fragmento.
Su tarea será tomar una lista de enteros positivos y determinar si son semi-palíndromos. Su código debería generar dos valores desiguales consistentes, uno si la entrada es un semi-palíndromo y el otro en caso contrario. Sin embargo, la secuencia de bytes de su código debe ser un semi-palíndromo .
Las respuestas se puntuarán en bytes, siendo menos bytes mejores
Casos de prueba
[] -> 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 generar más casos de prueba.
Borrible señaló que estos son similares a los palíndromos generalizados de Smarandache . Entonces, si desea leer más, ese es un lugar para comenzar.