java用栈实现括号匹配
时间: 2024-09-12 19:05:24 浏览: 63
在Java中,使用栈(Stack)来实现括号匹配是一种常见的算法应用。栈是一种后进先出(LIFO,Last In First Out)的数据结构,非常适合处理需要回溯的问题,如括号匹配。这里是一个简单的步骤:
1. 创建一个空栈。
2. 遍历输入字符串中的每个字符,分为三类:
- 开始括号(例如 '(', '{', '['):将它们压入栈。
- 结束括号(例如 ')', '}', ']'):检查栈顶是否与当前结束括号匹配。如果匹配,则弹出栈顶元素;如果不匹配,说明括号不配对,返回false。
- 其他字符:忽略。
3. 如果遍历结束后栈为空,说明所有括号都已成功匹配,返回true;否则,表示有未匹配的括号,返回false。
以下是伪代码示例:
```java
boolean isMatch(String s) {
Stack<Character> stack = new Stack<>();
for (char c : s.toCharArray()) {
if (c == '(' || c == '{' || c == '[') {
stack.push(c);
} else if (c == ')' && stack.peek() != '(' ||
c == '}' && stack.peek() != '{' ||
c == ']' && stack.peek() != '[') {
return false;
} else {
stack.pop();
}
}
return stack.isEmpty();
}
```
阅读全文