21xrx.com
2025-03-26 08:03:34 Wednesday
文章检索 我的文章 写文章
Java实现最大括号深度函数
2023-06-11 14:50:36 深夜i     --     --
Java 括号深度

括号深度是指一个字符串中最大层数嵌套括号的深度。例如字符串 "( ( ) ( ( ) ) )"的深度是 3。

现在,我们要用Java实现一个函数,来求出一个字符串的最大括号深度。下面是代码:

import java.util.Stack;
public class MaxDepth {
  public static int maxDepth(String s) {
    int maxDepth = 0;
    Stack
  stack = new Stack 
  
   ();
  
 
    for (int i = 0; i < s.length(); i++) {
      if (s.charAt(i) == '(') {
        stack.push(s.charAt(i));
        maxDepth = Math.max(maxDepth, stack.size());
      } else if (s.charAt(i) == ')') {
        if (!stack.isEmpty() && stack.peek() == '(') {
          stack.pop();
        } else
          return -1; // invalid input
        
      }
    }
    if (!stack.isEmpty())
      return -1; // invalid input
    
    return maxDepth;
  }
  public static void main(String[] args) {
    String s = "(())";
    int max = maxDepth(s);
    System.out.println(max); // output: 2
  }
}

在这个代码中,我们用一个栈来模拟括号的匹配过程。当遇到左括号时,入栈并更新最大深度。当遇到右括号时,判断栈是否为空以及栈顶是否为左括号,匹配成功则弹出栈顶元素。最后,检查栈是否为空,若不为空则说明有未匹配的括号,返回-1表示无效输入。

  
  

评论区

    相似文章