Ֆիքսված չափի stack (պահունակ)

Ենթադրենք՝ գոյություն ունի ծրագրավորմանը նվիրված ուսուցման հարթակ, իսկ դուք աշխատում եք այդ ընկերության զարգացման բաժնում: Մշակվում է դաս՝ բացառությունների մշակման և տվյալների կառուցվածքի ստեղծման վերաբերյալ, և ձեզ խնդրել են ստեղծել Stack class Python-ում: Այս Stack-ն ունի ֆիքսված չափ և երեք գործողություն.
  • push(item) - Ավելացնում է տարր պահունակի վերևում:
  • pop() - Հեռացնում է պահունակի վերին տարրը և վերադարձնում այն:
  • peek() - վերադարձնում է պահունակի վերին տարրը՝ առանց այն հեռացնելու:
Սակայն ձեր Stack class-ը պետք է ունենա հետևյալ սահմանափակումները.
  • push (item) գործողությունը պետք է raise անի StackOverflowError բացառություն, եթե փորձում եք որևէ տարր ավելացնել ամբողջական պահունակին:
  • pop() գործողությունը պետք է raise անի 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

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