Ctrl K

Удаления, после которых шаблон сохраняется

Средняя
Даны строки text и pattern, причём pattern — подпоследовательность text: её можно получить, вычеркнув из text некоторые символы и не меняя порядок остальных. Ещё дан массив order из различных индексов строки text (нумерация с нуля). Символы вычёркиваются по очереди в порядке массива: сначала text[order[0]], затем text[order[1]] и так далее. Индексы всегда относятся к исходной строке. Верните наибольшее k (от 0 до len(order)), при котором после вычёркивания первых k символов из order строка pattern всё ещё остаётся подпоследовательностью.
Пример 1
text='banana', pattern='ban', order=[5, 1, 0, 3] → 2

После удаления позиций 5 и 1 остаётся «bnan», в ней ещё можно найти b, a, n по порядку. Третье удаление уносит единственную «b».

Пример 2
text='abcab', pattern='ab', order=[0, 1, 2] → 3

Даже после всех трёх удалений остаётся «ab».

Пример 3
text='xyz', pattern='xz', order=[2, 1] → 0

Первое же удаление убирает «z», поэтому удалять нельзя ничего.

Ограничения
  • 1 ≤ len(pattern) ≤ len(text) ≤ 10⁵
  • 0 ≤ len(order) ≤ len(text)
  • 0 ≤ order[i] < len(text), все order[i] различны
  • text и pattern состоят из строчных латинских букв
  • pattern — подпоследовательность text
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПара в отсортированном списке СредняяТройки с суммой меньше порога СредняяНайти лишнюю копию СредняяТепло в каждый домик СредняяПодпоследовательность только одного слова Средняя
загружаем Python…
Вход
text='banana', pattern='ban', order=[5, 1, 0, 3]
Ожидается
2

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