あなたの仕事は、文字列がどれだけ完璧な回文であるかを決定することです。あなたの典型的な回文(例12321)は完全な回文です。その完全性は1です。
文字列の完全性を判断するために、各セクションが回文である場所に分割できるセクション数を確認します。withなどのあいまいさが存在する場合、or またはorにaaaa
分割できるため、最短セットがオーバーライドされ、最短セットの長さであるスコア1が与えられます。[aa, aa]
[aaaa]
[a, aaa]
[aaa, a]
aaaa
したがって、空ではない入力を1つ受け取り、それがどれだけ完璧かを設定するプログラムまたは関数を作成する必要があります(これは、セット内の各要素が回文である場所に分割できる最短セットの長さです)。
例:
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]
例では、角括弧で囲まれたものが出力の一部であってはならないことに注意してください。
ababacab
そしてその逆の、bacababa
は良いテストケースのようです。
ababacabBACABABA
良いテストケースでもあります(いくつかの答えは失敗します)。