From 1ddc83c1ff54b1d2e7515977874c41a67e6454c7 Mon Sep 17 00:00:00 2001 From: marina <138340846+bt3gl-cryptographer@users.noreply.github.com> Date: Tue, 1 Aug 2023 18:20:59 -0700 Subject: [PATCH] Create stack_II.py --- stacks/stack_II.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 stacks/stack_II.py diff --git a/stacks/stack_II.py b/stacks/stack_II.py new file mode 100644 index 0000000..ab91fb2 --- /dev/null +++ b/stacks/stack_II.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# author: bt3gl + + +class Stack: + + def __init__(self): + self.stack = [] + self.min = None + + def push(self, val: int) -> None: + self.stack.append((val, self.min)) + if self.min != None: + self.min = min(self.min, val) + else: + self.min = val + + def pop(self) -> None: + if self.stack: + (val, prior_min) = self.stack.pop() + self.min = prior_min + return val + + return False + + def top(self) -> int: + if self.stack: + return self.stack[-1][0] + + return False + + def getMin(self) -> int: + if self.stack: + return self.min + + return False +