Ctrl K

Кнопка «Назад»

Лёгкая
Пользователь листает страницы с номерами. Его действия записаны в массиве actions: положительное число — он открыл страницу с этим номером, -1 — нажал кнопку «Назад». Кнопка устроена так: если это k-е нажатие «Назад» подряд (без открытия новых страниц между ними), она показывает k-ю страницу с конца истории — при k = 1 последнюю открытую, при k = 2 предпоследнюю и так далее. Если в истории меньше k страниц, кнопка показывает -1. Открытие новой страницы сбрасывает счётчик нажатий; сама история при нажатиях не меняется. Верните список того, что показала кнопка, по порядку нажатий.
Пример 1
actions=[5, 8, 3, -1, -1, -1, -1] → [3, 8, 5, -1]

История: 3 (последняя), 8, 5. Четыре нажатия «назад» подряд дают 3, 8, 5, а на четвёртом история кончилась — -1.

Пример 2
actions=[-1, 7, -1, 2, -1, -1] → [-1, 7, 2, 7]

Первое нажатие — история пуста, -1. После 7 нажатие даёт 7. После 2 серия начинается заново: 2, затем 7.

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

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