Стек и очередь на Python: как решать + 4 задач с проверкой

Стек и очередь — это способы хранить элементы так, чтобы доставать их в строго определённом порядке. Стек работает как стопка тарелок (LIFO: последним положили — первым достали), очередь — как очередь в магазине (FIFO: первым пришёл — первым обслужили). В олимпиадных задачах они встречаются в проверке скобок, поиске «следующего большего справа», обработке событий по времени, подсчёте минимумов/максимумов на отрезках и в моделировании процессов.

Как распознать задачу

Частые признаки в условии:

Суть приёма

Мы поддерживаем структуру, где «актуальный край» доступен за O(1): у стека — вершина, у очереди — голова/хвост. За счёт этого каждый элемент обычно добавляется и удаляется не больше одного раза, поэтому многие задачи решаются за O(n) вместо перебора всех пар за O(n^2).

С чего начать

Ниже — задачи с автопроверкой и разбором подхода.

Задачи по теме «Стек и очередь»

Смежные темы

Весь каталог задач