Ctrl K

Вставки, чтобы проступил шаблон

Сложная
Даны массив pattern из попарно различных чисел и массив sequence, в котором числа могут повторяться. За одну операцию можно вставить в sequence любое число на любую позицию, в том числе в начало или в конец. Верните наименьшее число вставок, после которых pattern станет подпоследовательностью sequence, то есть его можно будет получить из sequence вычёркиванием части элементов без изменения порядка остальных.
Пример 1
pattern=[7, 2, 9], sequence=[2, 5, 9, 7] → 1

В sequence уже есть 2 и 9 в нужном порядке. Достаточно вставить 7 в самое начало: [7, 2, 5, 9, 7].

Пример 2
pattern=[4, 1, 6], sequence=[4, 8, 1, 1, 6] → 0

Шаблон уже читается в sequence, если пропустить 8 и одну из единиц.

Пример 3
pattern=[1, 2], sequence=[3, 3] → 2

Общих чисел нет, придётся вставить оба.

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

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