Su tarea es determinar qué tan palíndromo perfecto es una cuerda. Su palíndromo típico (por ejemplo, 12321) es un palíndromo perfecto; su perfección es 1.
Para determinar la perfección de una cadena, puede ver cuántas secciones puede dividir en donde cada sección es un palíndromo. Si hay ambigüedades, como con aaaa
, como se puede dividirlo en [aa, aa]
o [aaaa]
, o [a, aaa]
, o [aaa, a]
, el conjunto más corto anulará, dando aaaa
una puntuación de 1, que es la longitud de la serie más corta.
Por lo tanto, debe escribir un programa o función que tome una entrada y salida no vacía y cuán perfecta sea (que es la longitud del conjunto más corto que puede dividir en donde cada elemento del conjunto es un palíndromo).
Ejemplos:
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]
Tenga en cuenta que en los ejemplos, cualquier cosa entre corchetes no debería ser parte de la salida.
ababacab
y su reverso, bacababa
parecen ser buenos casos de prueba.
ababacabBACABABA
También es un buen caso de prueba (algunas respuestas fallan).