Стек фиксированного размера
Вы являетесь частью команды разработчиков платформы для обучения программированию. В рамках урока по обработке исключений и созданию структур данных вас попросили реализовать класс Stack на языке Python. Этот стек имеет фиксированный размер и поддерживает три операции:
push(item)
: Добавляет элемент на вершину стека.pop()
: Удаляет верхний элемент стека и возвращает его.peek()
: Просматривает верхний элемент стека без его удаления.
Однако ваш класс Stack должен удовлетворять следующим ограничениям:
Если попытаться добавить элемент в полный стек, операция
push(item)
должна вызывать исключениеStackOverflowError
.Если попытаться удалить элемент из пустого стека, операция
pop()
должна вызывать исключениеStackEmptyError
.
Чтобы создать корректную иерархию классов, StackOverflowError
и StackEmptyError
должны наследоваться от Exception
и не принимать аргументов в своих методах __init__
.
Ввод | Вывод |
---|---|
| StackOverflowError: The stack is full |
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB