Ctrl K

Сдвиг с дописыванием

Сложная
На табло бегущей строки показано слово word. Каждую секунду обязательно происходят два действия: с левого края пропадают первые step символов, а справа вы дописываете ровно step любых строчных букв на свой выбор — не обязательно те, что пропали. Найдите наименьшее положительное число секунд, через которое на табло снова может оказаться исходное слово word.
Пример 1
word='abcabcab', step=3 → 1

Через секунду слева остаётся «abcab», а это как раз начало исходного слова. Дописываем справа «cab» — и строка снова «abcabcab».

Пример 2
word='banana', step=2 → 3

После первой секунды остаётся «nana», после второй — «na»; ни то ни другое не начало слова «banana». К третьей секунде от исходной строки не остаётся ничего, и можно записать её целиком заново.

Пример 3
word='abab', step=1 → 2

Через секунду остаётся «bab» — не подходит. Через две — «ab», это начало «abab», дописываем «ab».

Ограничения
  • 1 ≤ word.length ≤ 10⁶
  • 1 ≤ step ≤ word.length
  • word состоит только из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПалиндром дописыванием слева СложнаяНачало, совпадающее с концом СложнаяХвосты, повторяющие начало СложнаяСнимаем повторяющееся начало СложнаяСлово рядом с якорем Сложная
загружаем Python…
Вход
word='abcabcab', step=3
Ожидается
1

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