Votre tâche consiste à déterminer la quantité d'un palindrome parfait d'une chaîne. Votre palindrome typique (par exemple 12321) est un palindrome parfait; sa perfection est de 1.
Pour déterminer la perfection d'une chaîne, vous voyez combien de sections vous pouvez la diviser en où chaque section est un palindrome. S'il y a des ambiguïtés, comme avec aaaa, comme vous pouvez le diviser en [aa, aa]ou [aaaa]ou [a, aaa]ou [aaa, a], l'ensemble le plus court prévaudra, donnant aaaaun score de 1, qui est la longueur de l'ensemble le plus court.
Par conséquent, vous devez écrire un programme ou une fonction qui prendra une entrée non vide et affichera sa perfection (qui est la longueur de l'ensemble le plus court, vous pouvez le diviser en où chaque élément de l'ensemble est un palindrome).
Exemples:
1111 -> 1 [1111]
abcb -> 2 [a, bcb]
abcbd -> 3 [a, bcb, d]
abcde -> 5 [a, b, c, d, e]
66a -> 2 [66, a]
abcba-> 1 [abcba]
x -> 1 [x]
ababacab -> 2 [aba, bacab]
bacababa -> 2 [bacab, aba]
26600 -> 3 [2, 66, 00] [my user id] [who has a more perfect user id?]
ababacabBACABABA -> 4 [aba, bacab, BACAB, ABA]
Notez que dans les exemples, tout ce qui est entre crochets ne doit pas faire partie de la sortie.
ababacabet son inverse, bacababasemblent être de bons cas de test.
ababacabBACABABAest également un bon cas de test (certaines réponses échouent).