一、题目描述
现有一字符串仅由(、)、 {、}、[、 ]六种括号组成。
若字符串满足以下条件之一,则为无效字符串:任一类型的左右括号数量不相等
存在未按正确顺序先左(,后右)闭合的括号,输出括号的最大嵌套深度,若字符串无效则输出0。
0<=字符串长度<=100000
二、输入描述
一个只包括(、)、 {、}、[、 ]的字符串。
三、输出描述
整数,最大的括号深度
输入 | 输出 | 说明 |
---|---|---|
[] | 1 | 有效字符串,最大嵌套深度1 |
[{[]}()] | 3 | 有效字符串,最大嵌套深度3 |
四、解题思路
先明确一点,最大括号深度指的是有效闭合括号的嵌套深度,而不是有效闭合括号的组合数。
- 利用栈的特效;
- 如果是左括号{[(,则加入栈stack,有效深度+1;
- 如果是右括号,则弹出栈