問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
文字列 S が与えられます。
S をそれぞれが回文である 1 つ以上の文字列に分割するとき、必要な最小の分割回数を出力してください。
ただし、回文である文字列とは以下のようなものを指します。
・i 文字目と {|string| - (i - 1) } 文字目が常に等しい 1 文字以上からなる文字列(1 ≦ i ≦ |string|, |string| は文字列 string の文字数)
また、文字列の分割は以下の操作を 1 回とし、分割後の文字列を分割前の順序で連結したものと、分割前の文字列が一致する必要があります。
・1 つの文字列をそれぞれが 1 文字以上である 2 つの文字列に分ける操作
入力は以下のフォーマットで与えられます。
S
S をそれぞれが回文である 1 つ以上の文字列に分割するとき、必要な最小の分割回数を出力してください。
最後は改行し、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・2 ≦ |S| ≦ 1000
・|S| は 文字列 S の文字数
・S は英子文字のみからなる
aca
1
abcbada
3