最大括号深度java
时间: 2024-10-18 17:21:05 浏览: 31
华为OD机试C卷- 最大括号深度(Java & JS & Python).md-私信看全套OD代码及解析
在 Java 中,最大括号深度(Maximal Brace Depth)通常是指在一个字符串中找到最大的嵌套括号序列的深度。这个任务常常作为算法题目的练习,例如在 LeetCode 上的 "Valid Parentheses" 或 "Maximal Square" 等题目中会遇到。你可能会使用栈的数据结构来解决这个问题,遍历输入字符串的同时,每当遇到左括号(如 '{', '(', '['),就将它压入栈中;当遇到右括号时,检查栈顶元素是否与其匹配,如果匹配则弹出栈顶元素,如果不匹配则返回当前深度并停止计算。最后,栈为空时的最大深度即为所求。
以下是简单的伪代码描述:
```java
int maxBraceDepth(String s) {
int depth = 0;
Stack<Character> stack = new Stack<>();
for (char c : s.toCharArray()) {
if (c == '(' || c == '{' || c == '[') {
stack.push(c);
depth += 1;
} else if (c == ')' || c == '}' || c == ']') {
if (!stack.isEmpty() && c == ')' && stack.peek() == '(' ||
c == '}' && stack.peek() == '{' ||
c == ']' && stack.peek() == '[') {
stack.pop();
} else {
// 如果当前右括号无法匹配栈顶的左括号,则更新最大深度
depth = Math.max(depth, stack.empty() ? 0 : depth);
}
}
}
return depth;
}
```
阅读全文