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 aaaa
un 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.
ababacab
et son inverse, bacababa
semblent être de bons cas de test.
ababacabBACABABA
est également un bon cas de test (certaines réponses échouent).