Эмиттер событий
Задача по программированию с проверкой онлайн
- Сложность
- Сложная
- Языки
- Python
- JavaScript
- TypeScript
- Темы
- Словари и множества
- Массивы и списки
- Классы и ООП
Эмиттер событий принимает команды, имена событий и обработчиков — слова из латинских букв и цифр:
on EVENT NAME— добавить обработчикNAMEна событиеEVENT;once EVENT NAME— добавить обработчик, который сработает один раз и сам удалится;off EVENT NAME— удалить все обработчикиNAMEэтого события (и обычные, и одноразовые);emit EVENT— вызвать обработчики события в порядке добавления.
На каждую команду emit в ответ идёт одна строка: имена сработавших обработчиков через запятую в порядке вызова или "-", если обработчиков нет. Одно имя можно добавить несколько раз, тогда оно срабатывает столько раз, сколько добавлено. Одноразовые обработчики удаляются после этого emit.
Верните строки для всех emit по порядку.
Пример: ["on a x", "once a y", "emit a", "emit a", "off a x", "emit a"] → ["x,y", "x", "-"].
Источник: задача CodeShare
Решить онлайнБесплатно и без регистрации: пишете код в браузере и проверяете его тестами (без аккаунта — несколько задач в день).