题目

类型:栈
image.png

解题思路

遍历字符串 s,如果遇到了一个左括号,那么就将其入栈;如果遇到了一个右括号,那么就弹出栈顶的左括号,与该右括号匹配。这一过程中的栈的大小的最大值,即为 s 的嵌套深度。

代码实现时,由于只需要考虑栈的大小,可以用一个变量 size 表示栈的大小,当遇到左括号时就将其加一,遇到右括号时就将其减一,从而表示栈中元素的变化。这一过程中 size 的最大值即为 s 的嵌套深度。

代码

  1. class Solution {
  2. public int maxDepth(String s) {
  3. int ans = 0, size = 0;
  4. for (int i = 0; i < s.length(); ++i) {
  5. char ch = s.charAt(i);
  6. if (ch == '(') {
  7. ++size;
  8. ans = Math.max(ans, size);
  9. } else if (ch == ')') {
  10. --size;
  11. }
  12. }
  13. return ans;
  14. }
  15. }