Ihre Aufgabe ist es, zu bestimmen, wie viel von einem perfekten Palindrom eine Zeichenfolge ist. Ihr typisches Palindrom (zB 12321) ist ein perfektes Palindrom; seine Vollkommenheit ist 1.
Um die Perfektion einer Zeichenfolge zu bestimmen, sehen Sie, in wie viele Abschnitte Sie sie aufteilen können, wobei jeder Abschnitt ein Palindrom ist. Wenn es Unklarheiten gibt, wie z. B. mit aaaa
, wie Sie es in [aa, aa]
oder [aaaa]
oder [a, aaa]
oder aufteilen können [aaa, a]
, hat die kürzeste Menge Vorrang und ergibt aaaa
eine Punktzahl von 1, was der Länge der kürzesten Menge entspricht.
Aus diesem Grund müssen Sie ein Programm oder eine Funktion schreiben, die eine nicht leere Eingabe verwendet und ausgibt, wie perfekt sie ist (dies ist die Länge der kürzesten Menge, in die Sie sie aufteilen können, wobei jedes Element in der Menge ein Palindrom ist).
Beispiele:
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]
Beachten Sie, dass in den Beispielen alles in eckigen Klammern nicht Teil der Ausgabe sein sollte.
ababacab
und sein Gegenteil bacababa
scheinen gute Testfälle zu sein.
ababacabBACABABA
ist auch ein guter Testfall (einige Antworten scheitern daran).