1. "去掉外层括号/括号得分"类题与单调栈的关联
"去掉外层括号"、"括号得分"等括号类题目与单调栈有什么关联?
- 括号匹配的栈建模
- 合法括号子串的单调性
- 括号单调性:栈内括号的单调有序性对应合法括号子串的结构
括号类题目常需要维护"当前嵌套深度"或"最近未匹配的括号位置",这可以用栈(或等价于单调栈的思路)来记录。例如"最长有效括号"用栈记录未匹配的左括号下标,遇到右括号时弹出并计算跨度;"括号得分"用栈记录当前分数。这类题的共同点是:栈自动维护了一个"待匹配左括号"的单调序列,栈内元素的位置顺序与深度一致,从而能用栈顶与当前下标差计算最长合法子串或区间。
括号匹配本身是"栈"的经典应用,而"最长合法括号""去除最外层括号"等需要求"区间长度/相互包含关系"时,栈底到栈顶的深度天然单调,与单调栈"维护单调区间"的思想相通。理解"栈维护未匹配左括号的位置,右括号弹出时结算区间"即可。