Ctrl K

Самая длинная серия после каждой правки

Сложная
Дан текст text из строчных латинских букв. Затем к нему по очереди применяются правки: правка номер i записывает букву letters[i] в позицию positions[i] (нумерация с нуля), заменяя прежнюю букву. Правки накапливаются: каждая следующая применяется к тексту, уже изменённому предыдущими. *Серия* — это отрезок текста подряд из одинаковых букв. После каждой правки найдите длину самой длинной серии во всём тексте. Верните список этих длин — по одной на каждую правку, в том же порядке.
Пример 1
text="xxyzz", letters="zyz", positions=[2, 1, 1] → [3, 3, 4]

После первой правки текст xxzzz, самая длинная серия zzz длины 3. После второй — xyzzz, снова 3. После третьей — xzzzz, серия из четырёх z.

Пример 2
text="aaaa", letters="b", positions=[1] → [2]

Текст становится abaa: самая длинная серия — две a в конце.

Пример 3
text="q", letters="qr", positions=[0, 0] → [1, 1]

Первая правка ничего не меняет (буква та же), вторая заменяет единственную букву. В обоих случаях серия длины 1.

Ограничения
  • 1 ≤ len(text) ≤ 10⁵
  • 1 ≤ len(letters) ≤ 10⁵
  • len(positions) = len(letters)
  • 0 ≤ positions[i] < len(text)
  • text и letters состоят из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКонтур городской застройки СложнаяМеньшие справа СложнаяСуммы отрезков в заданной полосе СложнаяПары с крутым спадом СложнаяТёмный промежуток между фонарями Сложная
загружаем Python…
Вход
text="xxyzz", letters="zyz", positions=[2, 1, 1]
Ожидается
[3, 3, 4]

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