固定サイズのスタック
あなたはプログラミング教育プラットフォームの開発チームの一員です。例外処理とデータ構造の作成に関するレッスンとして、Pythonでスタッククラスを実装するよう依頼されました。このスタックは固定サイズで、以下の3つの操作をサポートします。
push(item)
: アイテムをスタックの一番上に追加する。
pop()
: スタックの一番上のアイテムを取り出して返す。
peek()
: スタックの一番上のアイテムを削除せずに参照する。
ただし、あなたのスタッククラスは次の制約を満たす必要があります。
- スタックが満杯の状態で
push(item)
しようとした場合、StackOverflowError
例外を発生させる。
- スタックが空の状態で
pop()
しようとした場合、StackEmptyError
例外を発生させる。
クラスの適切な継承抽象化を行うため、
StackOverflowError
とStackEmptyError
はException
を継承し、__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