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 aaaa
gibi 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.
ababacab
ve bunun tersi, bacababa
iyi test durumları gibi görünüyor.
ababacabBACABABA
Aynı zamanda iyi bir test durumudur (bazı cevaplar üzerinde başarısız).