Ctrl K

Стек из потока чисел

Средняя
Числа 1, 2, ..., limit поступают по одному, по возрастанию. У вас есть пустой стек и две операции: - "Push" — взять следующее число из потока и положить его на вершину стека; - "Pop" — снять число с вершины стека. Нужно, чтобы содержимое стека снизу вверх совпало со строго возрастающим массивом wanted. Как только это произошло, операции прекращаются и новые числа из потока не читаются. Верните последовательность операций, которая приводит к wanted.
Пример 1
wanted=[2, 3], limit=4 → ['Push', 'Pop', 'Push', 'Push']

Берём 1 и сразу снимаем его, затем кладём 2 и 3. Стек равен [2, 3] — останавливаемся, число 4 не читаем.

Пример 2
wanted=[1, 4], limit=4 → ['Push', 'Push', 'Pop', 'Push', 'Pop', 'Push']

1 остаётся, 2 и 3 кладутся и тут же снимаются, затем кладётся 4.

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

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