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;
}
}