固定サイズのスタック

あなたはプログラミング教育プラットフォームの開発チームの一員です。例外処理とデータ構造の作成に関するレッスンとして、Pythonでスタッククラスを実装するよう依頼されました。このスタックは固定サイズで、以下の3つの操作をサポートします。

  • push(item): アイテムをスタックの一番上に追加する。

  • pop(): スタックの一番上のアイテムを取り出して返す。

  • peek(): スタックの一番上のアイテムを削除せずに参照する。

ただし、あなたのスタッククラスは次の制約を満たす必要があります。

  • スタックが満杯の状態でpush(item)しようとした場合、StackOverflowError例外を発生させる。

  • スタックが空の状態でpop()しようとした場合、StackEmptyError例外を発生させる。

クラスの適切な継承抽象化を行うため、StackOverflowErrorStackEmptyErrorExceptionを継承し、__init__メソッドで引数を受け取らないようにします。

入力

出力

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