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