Senin görevin bir dize ne kadar mükemmel bir palindrom olduğunu belirlemek. Tipik palindromunuz (örneğin, 12321) mükemmel bir palindromdur; mükemmelliği 1.
Bir dizgenin kusursuzluğunu belirlemek için, onu her bir bölümün bir palindrom olduğu yere kaç bölüme ayırabileceğinizi görürsünüz. Eğer ya da ya da ya da ya da ya da aaaagibi ayrılabildiğiniz gibi belirsizlikler varsa , en kısa küme, en kısa kümenin uzunluğu olan 1 puan vererek geçersiz kılınır .[aa, aa][aaaa][a, aaa][aaa, a]aaaa
Bu nedenle, boş olmayan bir girdi alan ve ne kadar mükemmel çıktılar çıkaran bir program veya işlev yazmalısınız (bu, kümedeki her öğenin bir palindrom olduğu yere bölediğiniz en kısa kümenin uzunluğu).
Örnekler:
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]
Örneklerde köşeli parantez içindeki hiçbir şey çıktının bir parçası olmamalıdır.
ababacabve bunun tersi, bacababaiyi test durumları gibi görünüyor.
ababacabBACABABAAynı zamanda iyi bir test durumudur (bazı cevaplar üzerinde başarısız).