Pilha de Tamanho Fixo

Você faz parte de uma equipa de desenvolvimento para uma plataforma de ensino de programação. Como parte de uma lição sobre manipulação de exceções e criação de estruturas de dados, pediram-lhe para implementar uma classe Stack em Python. Esta pilha tem um tamanho fixo e suporta três operações:
  • push(item): Adiciona um item ao topo da pilha.
  • pop(): Remove e retorna o item do topo da pilha.
  • peek(): Visualiza o item no topo da pilha sem removê-lo.
No entanto, a sua classe Stack deve cumprir as seguintes restrições:
  • A operação push(item) deve levantar uma exceção StackOverflowError se tentar adicionar um item a uma pilha cheia.
  • A operação pop() deve levantar uma exceção StackEmptyError se tentar remover um item de uma pilha vazia.
Para criar uma boa abstração de herança entre classes, as exceções StackOverflowError e StackEmptyError devem herdar de Exception e não aceitar argumentos nos seus métodos __init__.
Entrada
Saída
stack = Stack(3); stack.push('A'); stack.push('B'); stack.push('C'); stack.push('D'); print(stack.peek()); print(stack.pop()); print(stack.pop()); print(stack.pop()); print(stack.pop())
StackOverflowError: The stack is full C C B A StackEmptyError: The stack is empty
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue