Add leetcode 155 task solution

This commit is contained in:
pro100ton 2024-12-27 22:16:45 +03:00
parent 956fe7e03e
commit 6043f03af3

View file

@ -0,0 +1,51 @@
# Link: https://leetcode.com/problems/min-stack/
from typing import List
import pytest
class MinStack:
def __init__(self):
self._s: List[int] = []
self._min: List[int] = []
def push(self, val: int) -> None:
if len(self._s) == 0:
self._min.append(0)
elif val < self._s[self._min[-1]]:
self._min.append(len(self._s))
self._s.append(val)
def pop(self) -> None:
if len(self._s) - 1 == self._min[-1]:
self._min.pop()
self._s.pop()
def top(self) -> int:
return self._s[-1]
def getMin(self) -> int:
return self._s[self._min[-1]]
class TestSuite:
@pytest.fixture(autouse=True)
def init_tests(self):
self.sol = MinStack()
def test_solution_1(self):
self.sol.push(1)
self.sol.push(-1)
self.sol.push(2)
self.sol.push(-2)
self.sol.pop()
assert self.sol.getMin() == -1
def test_solution_2(self):
breakpoint()
self.sol.push(-2)
self.sol.push(0)
self.sol.push(-1)
assert self.sol.getMin() == -2
assert self.sol.top() == -1
self.sol.pop()
assert self.sol.getMin() == -2