Ctrl K

Сколько блоков спрятано в ленте

Сложная
Строку text напечатали text_times раз подряд и получили длинную ленту. Строку pattern, записанную pattern_times раз подряд, назовём блоком. Из ленты разрешено вычёркивать любые символы, не меняя порядок оставшихся. Найдите наибольшее целое m, при котором вычёркиванием можно получить блок, повторённый m раз подряд. Если не получается даже один блок, верните 0. Например, при text = "ab", text_times = 2 лента — "abab", а при pattern = "b", pattern_times = 2 блок — "bb"; из ленты получается ровно один такой блок.
Пример 1
text="xyz", text_times=3, pattern="xz", pattern_times=1 → 3

Лента — "xyzxyzxyz". Вычеркнув все y, получаем "xzxzxz" — три копии блока "xz".

Пример 2
text="ab", text_times=5, pattern="ba", pattern_times=2 → 2

Лента — "ababababab", из неё можно оставить "babababa": это 4 повтора "ba", то есть 2 блока "baba".

Пример 3
text="abc", text_times=4, pattern="d", pattern_times=1 → 0

Буквы d на ленте нет, поэтому ни одного блока не получится.

Ограничения
  • 1 ≤ len(text) ≤ 1000
  • 1 ≤ len(pattern) ≤ 100
  • 1 ≤ text_times, pattern_times ≤ 10⁶
  • text и pattern состоят из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиШаблон с точкой и звёздочкой СложнаяСамый длинный сбалансированный отрезок скобок СложнаяПодходит ли строка под шаблон СложнаяПеретасовка разрезами СложнаяСколькими способами вычеркнуть Сложная
загружаем Python…
Вход
text="xyz", text_times=3, pattern="xz", pattern_times=1
Ожидается
3

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