21xrx.com
2025-03-21 14:08:43 Friday
文章检索 我的文章 写文章
Java实现最大括号深度函数的方法及示例代码
2023-06-12 15:10:06 深夜i     12     0
Java 括号匹配 堆栈

在编程领域中,有些问题需要用到括号匹配算法,其中一个常见的问题是求括号的最大深度。在本文中,我们将介绍如何使用Java编写一个函数,计算给定字符串中括号的最大深度,并提供示例代码。让我们开始吧!

实现方法

我们可以使用堆栈数据结构来实现括号的最大深度函数。遍历字符串中的每一个字符,如果遇到左括号,则将其入栈,如果遇到右括号,则将其与栈顶的左括号匹配,得到当前括号的深度,统计所有括号深度的最大值即为结果。

示例代码

下面是一个简单的Java函数,实现括号的最大深度功能:

public static int maxDepth(String s) {
  Stack
  stack = new Stack<>();
 
  int maxDepth = 0;
  for (int i = 0; i < s.length(); i++) {
    char c = s.charAt(i);
    if (c == '(') {
      stack.push(c);
      maxDepth = Math.max(maxDepth, stack.size());
    } else if (c == ')') {
      if (!stack.isEmpty() && stack.peek() == '(') {
        stack.pop();
      } else
        return -1; // 匹配失败
    }
  }
  if (!stack.isEmpty()) 返回-1
  
  return maxDepth;
}

该函数的时间复杂度为O(n),空间复杂度为O(n)。

示例

我们使用一个字符串进行测试,该字符串中包含了不同深度的括号:

String s = "((()))((((()))))()()()";
int depth = maxDepth(s);
System.out.println("括号的最大深度为:" + depth);

输出结果为:

括号的最大深度为:6

结论:该字符串中最大括号深度为6。

关键词

Java、括号匹配、堆栈。

  
  

评论区