Palindrome machen Spaß, aber einige der anderen Saiten fühlen sich allmählich ausgelassen. Wir können diese Saiten in klobige Palindrome verwandeln, indem wir sie in palindrome Gruppen von Stücken aufteilen.
Beispielsweise ist der String "abcabca"
kein Palindrom, wenn wir ihn Zeichen für Zeichen lesen, aber wir haben drei verschiedene Möglichkeiten, ihn zu einem klobigen Palindrom zu machen:
["abcabca"]
["a" "bcabc" "a"]
["a" "bc" "a" "bc" "a"]
Wie Sie sehen können, ist klobige Palindromie ein sehr umfassendes Konzept. Jede Saite kann auf mindestens eine Weise in ein klobiges Palindrom verwandelt werden.
Aufgabe
Schreiben Sie ein Programm oder eine Funktion, die eine Zeichenfolge als Eingabe empfängt und ihre palindromische Chunkiness zurückgibt , dh die Anzahl ihrer Partitionen, die palindromische Arrays sind.
Testfälle
OUTPUT | INPUT
--------+---------------------------------------------
1 | ""
1 | "a"
1 | "ab"
2 | "aa"
2 | "aaa"
3 | "abcabca"
4 | "abababab"
28 | "abcabcaabababababcabca"
1 | "bbbbabababbbbababbbaaaaa"
20 | "ababbaaaabababbbaaabbbaa"
5 | "baaabaabababaababaaabbaab"
62 | "bbaaababbabbabbbabaabaabb"
2 | "a man a plan a canal panama"
25 | "ama nap lan aca nal pan ama"
93 | "SATOR AREPO TENET OPERA ROTAS"
976 | "abcabcaabcabcaabcabcaabcabcaabcabcaabcabca"
28657 | "ababababababababababaababababababababababa"
2097152 | "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
Zusätzliche Regeln
Sie können davon ausgehen, dass die Eingabe aus 42 oder weniger druckbaren ASCII-Zeichen besteht, die optional von den Zeichenfolgenbegrenzern Ihrer Sprache und / oder einer neuen Zeile umgeben sind.
Für jede gültige Eingabezeichenfolge muss Ihr Code auf meinem Computer (Intel Core i7-3770, 16 GB RAM, Fedora 21) in weniger als einer Minute fertig sein.
Mit einem geeigneten Algorithmus sollte es einfach sein, diese Frist einzuhalten. Höchstwahrscheinlich können Sie jedoch nicht alle Partitionen der Eingabezeichenfolge durchlaufen.
Wenn Sie die Ausgabe auf STDOUT drucken möchten, wird möglicherweise eine einzelne neue Zeile eingefügt.
Es gelten die Standardregeln für Code-Golf .