java生成栈的应用——括号匹配代码
时间: 2024-10-25 20:13:09 浏览: 16
在Java中,我们可以利用栈(Stack)数据结构实现括号匹配算法,比如检查一个表达式中的圆括号是否配对完整。这是因为在栈这种后进先出的数据结构中,每当遇到左括号(如'(')就将其压入栈中,遇到右括号(如')')时,就检查栈顶元素是否是对应的左括号,并弹出。如果最后栈为空,说明所有括号都配对了;如果有剩余元素,则表示有未匹配的括号。
下面是一个简单的Java代码示例:
```java
import java.util.Stack;
public class BracketMatcher {
private Stack<Character> stack = new Stack<>();
public boolean isValid(String s) {
for (int i = 0; i < s.length(); i++) {
char currentChar = s.charAt(i);
if (currentChar == '(' || currentChar == '[' || currentChar == '{') { // 遇到左括号,入栈
stack.push(currentChar);
} else if (currentChar == ')' && !stack.isEmpty() && stack.peek() == '(') { // 遇到右括号,且上一个元素是左括号,出栈并比较
stack.pop();
} else if (currentChar == ']' && !stack.isEmpty() && stack.peek() == '[') {
stack.pop();
} else if (currentChar == '}' && !stack.isEmpty() && stack.peek() == '{') {
stack.pop();
} else { // 如果当前不是左括号,也不是关闭当前层次的右括号,直接返回false
return false;
}
}
// 检查栈是否为空,若为空则括号完全匹配,反之则不匹配
return stack.isEmpty();
}
}
```
阅读全文