Ctrl K

Зеркальная нарезка строки

Сложная
Строку line нужно разрезать на непустые куски p1, p2, …, pk так, чтобы они, записанные подряд, давали исходную строку, и чтобы нарезка была зеркальной: первый кусок совпадает с последним, второй — с предпоследним и так далее, то есть p_i == p_{k - i + 1} для всех i. Если кусков нечётное число, центральный кусок может быть любым. Верните наибольшее возможное число кусков k.
Пример 1
line="redbluered" → 3

Разрезаем на (red)(blue)(red): первый кусок совпадает с последним, а средний стоит в центре один. Больше трёх не получится.

Пример 2
line="abcd" → 1

Ни одно начало не совпадает с концом той же длины, остаётся один кусок — вся строка.

Пример 3
line="kayak" → 5

(k)(a)(y)(a)(k) — каждая буква отдельным куском.

Ограничения
  • 1 ≤ len(line) ≤ 1000
  • line состоит из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСнимаем повторяющееся начало СложнаяНепересекающиеся длинные палиндромы СложнаяСлово рядом с якорем СложнаяФраза из начал слов: длинная версия СложнаяСамый длинный повтор Средняя
загружаем Python…
Вход
line="redbluered"
Ожидается
3

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 184 теста на сервере, включая скрытые.