Letter Queue Letter Queue
Elementary
EN FR RU Ukrainian

В галузі інформаційних технологій, черга це динамічна структура даних, що працює за принципом "перший прийшов — перший пішов" (англ. FIFO — first in, first out), в якій елементи колекції зберігаються упорядкованими, а основними операціями є додавання в чергу та видалення з черги. У черги є голова (англ. head) та хвіст (англ. tail). Додавання можливе тільки в "хвіст" черги (enqueue — "поставити в чергу" чи push), видалення з черги (або вибірка елементу) можливе лише з "голови" черги (dequeue — "отримання з черги" чи pop). Тобто, для того, щоб отримати новий елемент із черги, потрібно видалити всі попередні елементі, які були додані...

Спробуємо змоделювати роботу черги з допомогою Python. Вам дано набір команд:
- "PUSH X" -- поставити в чергу , де літера у верхньому регістрі.
- "POP" -- отримати з голови черги елемент. Якщо черга порожня, то не виконувати ніяких дій.
Черга може містити лише літери.

Вам потрібно опрацювати всі команди та зібрати літери, що залишилися в черзі, в одне слово від початку до кінця черги.

Давайте розглянемо на прикладі, ось послідовність команд:
["PUSH A", "POP", "POP", "PUSH Z", "PUSH D", "PUSH O", "POP", "PUSH T"]

PUSH A A Додали "A" до порожньої черги
POP Видалили "A"
POP Черга вже порожня
PUSH Z Z
PUSH D ZD
PUSH O ZDO
POP DO
PUSH T DOT Результат

Послідовність команд як список рядків (list of strings).

Залишок в черзі як рядок (string).

letter_queue(["PUSH A", "POP", "POP", "PUSH Z", "PUSH D", "PUSH O", "POP", "PUSH T"]) == "DOT"
letter_queue(["POP", "POP"]) == ""
letter_queue(["PUSH H", "PUSH I"]) == "HI"
letter_queue([]) == ""
    

Черги використовуються в інформаційних технологіях, транспорті та операційних дослідженнях для зберігання та подальшої обробки різних даних.


0 ≤ len() ≤ 30;
all(re.match("\APUSH [A-Z]\Z", c) or re.match("\APOP\Z", c) for c in )

You should be an authorized user in order to see the full description and start solving this mission.