21xrx.com
2024-11-22 07:11:00 Friday
登录
文章检索 我的文章 写文章
【代码分享】Java实现最大括号深度算法
2023-06-11 12:27:12 深夜i     --     --
最大括号深度 Java实现

括号在编程语言中的使用非常广泛,而在编程中常常需要计算表达式中括号的嵌套深度,即最大括号深度。本文将为大家分享一种Java实现最大括号深度的算法,同时附有代码案例供大家学习参考。

算法思路:

使用栈来进行括号匹配,每当遇到左括号时将其入栈,遇到右括号时将其与栈顶元素比较,如果匹配成功则出栈,否则返回无效。

代码实现:

public int maxDepth(String s) {

  int maxDepth = 0, curDepth = 0;

  Stack stack = new Stack<>();

  for (char c : s.toCharArray()) {

    if (c == '(') {

      stack.push(c);

      curDepth++;

      maxDepth = Math.max(maxDepth, curDepth);

    } else if (c == ')') {

      if (!stack.isEmpty() && stack.peek() == '(') {

        stack.pop();

        curDepth--;

      } else

        return -1;

    }

  }

  return stack.isEmpty() ? maxDepth : -1;

}

代码解释:

1. 遍历字符串s中的每个字符c。

2. 如果c是左括号,则将其入栈,同时当前深度curDepth+1,并更新最大深度maxDepth。

3. 如果c是右括号,则判断栈是否为空及栈顶元素是否为左括号,若符合条件则出栈并curDepth-1,否则返回无效。

4. 如果遍历完成后栈为空,则返回最大深度,否则返回无效。

关键词:

最大括号深度、Java实现、栈

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复