Ctrl K

Порядок снятия со стека

Средняя
Изначально стек пуст. Числа кладут в него строго в порядке массива pushes, а в любой момент между этими операциями можно снимать числа с вершины стека. Все числа в pushes различны, а массив pops — это те же числа в некотором порядке. Верните True, если можно так перемежать операции «положить» и «снять», чтобы числа снимались со стека ровно в порядке pops, и False иначе.
Пример 1
pushes=[7, 3, 9, 1], pops=[3, 9, 1, 7] → True

Кладём 7 и 3, снимаем 3; кладём 9, снимаем 9; кладём 1, снимаем 1; снимаем 7.

Пример 2
pushes=[7, 3, 9, 1], pops=[9, 7, 1, 3] → False

Чтобы снять 9, нужно положить 7, 3 и 9. После снятия 9 сверху лежит 3, а 7 под ней — снять 7 раньше 3 нельзя.

Пример 3
pushes=[4], pops=[4] → True
Ограничения
  • 1 ≤ len(pushes) ≤ 1000
  • 0 ≤ pushes[i] ≤ 1000
  • Все числа в pushes различны
  • pops — перестановка pushes
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСтолкновения роботов на рельсе СредняяСтек из потока чисел СредняяЖурнал очков викторины ЛёгкаяРазборчивая очередь у раздачи ЛёгкаяСтолкновения роботов на рельсе Сложная
загружаем Python…
Вход
pushes=[7, 3, 9, 1], pops=[3, 9, 1, 7]
Ожидается
True

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