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