Stack 合集
前言
使用语言 Python, 只针对 LC Medium 和 Hard 题, 面向面试刷题
Note: 除非你面前端 (加上 JS) , 否则统一使用 Python 进行刷题
知识点
- Python 用 list 当 stack,后进先出(LIFO)
基本操作
stack = [] |
stack = [] |
单调栈模板
# 单调递增栈(栈底到栈顶递增) |
题目
LC 768
用单调递增栈,栈内的值是每一个 chuck 的最大值
LC 20
LC 739
维护单调递减栈, 栈里存“还没等到更高温度的天”. 一旦遇到更高温度, 就不断弹栈, 并计算等待天数
LC 71
LC 224
属于 Hard 里需要多刷的题, 遇到 ( 就“存档”, 遇到 ) 就“结算并恢复”
elif c == ')': |
LC 394
LC 84
用单调递增栈, 一旦遇到更小高度,就可以“结算”之前柱子的最大矩形
heights = [2,1,5,6,2,3] |
LC 772
这题比 224 复杂, 多刷
LC 227
这题属于 772 的一个子集
LC 316
构造一个单增栈, 遇到更小字符时, 如果之前的字符后面还能再出现, 就把它弹掉
LC 496
LC 1249
LC 32
这题 stack 里存的是合法子串的左边界索引 (e.g. 上一个不可能参与有效匹配的位置)
LC 735
这题算是比较有趣的 stack 题, 新行星只会与当前存活序列的尾部发生冲突










