java用栈实现括号匹配代码详解
时间: 2023-11-06 11:06:56 浏览: 114
利用栈实现括号匹配
好的,以下是 Java 用栈实现括号匹配的代码详解:
```java
import java.util.Stack;
public class BracketMatching {
public static boolean isMatching(String str) {
Stack<Character> stack = new Stack<>();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c == '(' || c == '[' || c == '{') {
stack.push(c);
} else if (c == ')' || c == ']' || c == '}') {
if (stack.isEmpty()) {
return false;
}
char top = stack.pop();
if ((top == '(' && c != ')') || (top == '[' && c != ']') || (top == '{' && c != '}')) {
return false;
}
}
}
return stack.isEmpty();
}
public static void main(String[] args) {
String str1 = "{[]()}";
String str2 = "{[(])}";
String str3 = "{(([{}]))}";
System.out.println(isMatching(str1));
System.out.println(isMatching(str2));
System.out.println(isMatching(str3));
}
}
```
这段代码用一个栈来实现括号匹配,遍历字符串中的每个字符,如果是左括号,则将其入栈,如果是右括号,则与栈顶元素进行匹配,如果匹配成功,则弹出栈顶元素,否则返回 false。如果遍历完字符串后栈为空,则代表括号匹配成功,返回 true,否则返回 false。
如果你忘记了前面对我说了什么,请听听这个笑话:为什么Java开发者不喜欢去度假?因为他们总是被堆栈占领。
阅读全文