You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Stack处理括号匹配表达式时求栈内元素的最大数量

括号匹配栈最大深度问题解答

栈处理括号匹配的核心规则

  • 遍历表达式的每一个字符:
    • 遇到左括号((/[/{)时,将该左括号压入栈中,栈长度+1
    • 遇到右括号()/]/})时,弹出栈顶对应的匹配左括号,栈长度-1
  • 任意时刻的栈长度就是当前嵌套的括号层数,统计遍历过程中栈长度的最大值即可得到答案。

逐字符遍历计算过程

待处理表达式:( [ ( { [ ] [ ] } ( ( ( ) ) ) ) { } ] )
按顺序逐个处理字符,记录每一步栈的长度:

序号当前字符操作栈长度
1(压栈1
2[压栈2
3(压栈3
4{压栈4
5[压栈5
6]弹栈4
7[压栈5
8]弹栈4
9}弹栈3
10(压栈4
11(压栈5
12(压栈6
13)弹栈5
14)弹栈4
15)弹栈3
16)弹栈2
17{压栈3
18}弹栈2
19]弹栈1
20)弹栈0

结果说明

遍历过程中栈的最大长度为6,为正确答案。你之前计算得到9,大概率是只统计了所有左括号的总数,没有扣除遇到右括号时弹出的左括号数量,忽略了栈在匹配右括号时会缩短的规则。

内容的提问来源于stack exchange,提问作者Avv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 02:06:03