Tugas Anda adalah menentukan seberapa besar palindrome yang sempurna dari sebuah string. Palindrom khas Anda (mis. 12321) adalah palindrom sempurna; kesempurnaannya adalah 1.
Untuk menentukan kesempurnaan string, Anda melihat berapa banyak bagian yang dapat Anda bagi menjadi setiap bagian dari palindrom. Jika ada ambiguitas, seperti dengan aaaa
, ketika Anda dapat membaginya menjadi [aa, aa]
atau [aaaa]
atau [a, aaa]
atau [aaa, a]
, set terpendek akan menimpanya, memberikan aaaa
skor 1, yang merupakan panjang dari set terpendek.
Oleh karena itu, Anda harus menulis sebuah program atau fungsi yang akan mengambil satu input dan mengosongkan non-kosong seberapa sempurna itu (yang merupakan panjang dari set terpendek yang Anda dapat membaginya menjadi di mana setiap elemen dalam set adalah palindrom).
Contoh:
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]
Perhatikan bahwa dalam contoh apa pun dalam tanda kurung tidak boleh menjadi bagian dari output.
ababacab
dan kebalikannya,, bacababa
tampaknya merupakan ujian yang baik.
ababacabBACABABA
juga merupakan test case yang baik (beberapa jawaban gagal).