eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Разбиение на палиндромы

Разбиение на палиндромы

Разделение строки называется палиндромным разбиением, если каждая подстрока является палиндромом. Например, “aba|b|bbabb|a|b|aba” — это палиндромное разбиение “ababbbabbababa”.

Определите наименьшее количество разрезов, необходимых для палиндромного разбиения данной строки. Например, для “ababbbabbababa” требуется минимум 3 разреза. Они имеют вид: “a|babbbab|b|ababa”. Если строка уже является палиндромом, то ответом будет 0 разрезов. Если все символы строки длины n разные, то требуется минимум n - 1 разрезов.

Входные данные

Одна строка s длины не более 1000.

Выходные данные

Выведите минимальное количество разрезов, необходимых для палиндромного разбиения строки s.

Лимит времени 2 секунды
Лимит использования памяти 128 MiB
Входные данные #1
abbaazxzazbxbz
Выходные данные #1
2
Входные данные #2
abccba
Выходные данные #2
0
Входные данные #3
qwerty
Выходные данные #3
5
Автор Михаил Медведев