1614. Maximum Nesting Depth of the Parentheses #
题目 #
-
有效括号字符串满足下列条件之一
-
字符串是一个空字符串
""
,或者是一个不为"("
或")"
的单字符。 -
字符串可以写为
AB
(A
与B
字符串连接),其中A
和B
都是 有效括号字符串 。 -
字符串可以写为
(A)
,其中A
是一个 有效括号字符串 。
-
-
有效括号字符串
S
的 嵌套深度depth(S)
定义为:-
depth("") = 0
-
depth(C) = 0
,其中C
是单个字符的字符串,且该字符不是"("
或者")"
-
depth(A + B) = max(depth(A), depth(B))
,其中A
和B
都是 有效括号字符串 -
depth("(" + A + ")") = 1 + depth(A)
,其中A
是一个 有效括号字符串
-
-
例如:
""
、"()()"
、"()(()())"
都是 有效括号字符串(嵌套深度分别为 0、1、2),而")("
、"(()"
都不是 有效括号字符串 。 -
给定 有效括号字符串
s
,返回字符串的s
嵌套深度 。
思路 #
栈 #
- 嵌套深度是栈的最大深度
代码 #
栈 #
class Solution {
public int maxDepth(String s) {
Stack<Character> stack = new Stack<>();
int maxDepth = 0;
for (int i = 0; i < s.length(); i++) {
switch (s.charAt(i)) {
case '(':
stack.push('(');
maxDepth = Math.max(maxDepth, stack.size());
break;
case ')':
stack.pop();
break;
}
}
return maxDepth;
}
}