Ctrl K

Однозначный порядок по фрагментам

Средняя
Список order — перестановка чисел от 1 до n. Кроме того, есть набор фрагментов fragments: каждый фрагмент — подпоследовательность order, то есть несколько его чисел в том же относительном порядке (не обязательно подряд). Назовём последовательность подходящей, если каждый фрагмент — её подпоследовательность. Среди всех подходящих последовательностей рассмотрим самые короткие. Верните True, если order — единственная кратчайшая подходящая последовательность, и False иначе.
Пример 1
order=[2, 1, 3], fragments=[[2, 1], [1, 3]] → True

Фрагменты задают цепочку 2 → 1 → 3, и других вариантов нет — ответ True.

Пример 2
order=[2, 1, 3], fragments=[[2, 1], [2, 3]] → False

Известно лишь, что 2 идёт раньше и 1, и 3. Порядок [2, 3, 1] подходит так же хорошо, поэтому ответ False.

Пример 3
order=[1, 2, 3, 4], fragments=[[1, 2, 3]] → False

Число 4 не встречается ни в одном фрагменте, так что кратчайшая подходящая последовательность — [1, 2, 3], а не order. Ответ False.

Ограничения
  • n == order.length
  • 1 ≤ n ≤ 10⁴
  • order — перестановка чисел от 1 до n
  • 1 ≤ fragments.length ≤ 10⁴
  • 1 ≤ fragments[i].length ≤ 10⁴
  • суммарная длина всех фрагментов не больше 10⁵
  • все фрагменты различны
  • каждый fragments[i] — подпоследовательность order
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый тихий из тех, кто богаче СредняяЧто можно приготовить СредняяРаскрыть шаблон с переменными СредняяПорядок букв по словарю СложнаяСамый длинный подъём по карте Сложная
загружаем Python…
Вход
order=[2, 1, 3], fragments=[[2, 1], [1, 3]]
Ожидается
True

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