152 words
1 minute
日拱两卒(四)
2026-07-18
70
最小栈。让栈能额外支持一个操作,返回栈内最小值。
栈内多维护一个“前缀最小值”即可。
class MinStack:
def __init__(self): self.stack = [(0, float("inf"))]
def push(self, value: int) -> None: self.stack.append((value, min(self.stack[-1][1], value)))
def pop(self) -> None: self.stack.pop()
def top(self) -> int: return self.stack[-1][0]
def getMin(self) -> int: return self.stack[-1][1]69
有效的括号。
给一个含有三种括号的序列,判断是否合法。
class Solution: def isValid(self, s: str) -> bool: stack = [] need = { "}" : "{", "]" : "[", ")" : "(" } for c in s: if c == '(' or c == '[' or c == '{': stack.append(c) else: if not stack: return False if stack[-1] != need[c]: return False stack.pop() return not stack