Il tuo compito è determinare quanta parte di un palindromo perfetto è una stringa. Il tuo tipico palindromo (ad es. 12321) è un palindromo perfetto; la sua perfezione è 1.
Per determinare la perfezione di una stringa, vedi quante sezioni puoi dividerla in cui ogni sezione è un palindromo. Se ci sono ambiguità, come con aaaa, come puoi dividerlo in [aa, aa]o [aaaa]o [a, aaa]o [aaa, a], il set più corto avrà la precedenza, dando aaaaun punteggio di 1, che è la lunghezza del set più breve.
Pertanto, è necessario scrivere un programma o una funzione che prenda un input non vuoto e produca quanto è perfetto (qual è la lunghezza dell'insieme più corto in cui è possibile dividerlo in cui ogni elemento dell'insieme è un palindromo).
Esempi:
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]
Si noti che negli esempi qualsiasi cosa tra parentesi quadre non dovrebbe far parte dell'output.
ababacabe il suo rovescio, bacababasembrano essere buoni casi di test.
ababacabBACABABAè anche un buon caso di test (alcune risposte falliscono).