Un palindrome est un mot qui est son propre revers.
Maintenant, il y a des mots qui pourraient ressembler à des palindromes mais qui ne le sont pas. Par exemple , considérons le mot sheesh
, sheesh
n'est pas un palindrome parce que son inverse est hseehs
différent, si l' on considère sh
comme une seule lettre, il est est inverse sheesh
. Ce genre de mot, nous l'appellerons semi-palindrome.
Plus précisément, un mot est un semi-palindrome si nous pouvons diviser le mot en un certain nombre de morceaux de sorte que lorsque l'ordre des morceaux est inversé, le mot d'origine est formé. (Pour sheesh
ces morceaux sont sh e e sh
) Nous exigerons également qu'aucun morceau ne contienne des lettres des deux moitiés du mot (sinon chaque mot serait un semi-palindrome). Par exemple, ce rear
n'est pas un semi-palindrome car il r ea r
a un morceau ( ea
) qui contient des lettres des deux côtés du mot d'origine. Nous considérons que le caractère central dans un mot de longueur impaire n'est sur aucun côté du mot, donc pour les mots de longueur impaire, le caractère central doit toujours être dans son propre bloc.
Votre tâche sera de prendre une liste d'entiers positifs et de déterminer s'il s'agit d'un semi-palindrome. Votre code doit produire deux valeurs inégales cohérentes, l'une si l'entrée est un semi-palindrome et l'autre sinon. Cependant, la séquence d'octets de votre code doit être elle- même un semi-palindrome .
Les réponses seront notées en octets avec moins d'octets étant mieux.
Cas de test
[] -> 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
Programme pour générer plus de cas de test.
borrible a souligné que ceux-ci sont similaires aux palindromes de Smarandache généralisés . Donc, si vous voulez faire d'autres lectures, c'est un point de départ.