用java 设计一个算法利用顺序栈检查用户输入的表达式中括号是否配对(假设表达式中 可能含有圆()号、中括号[]和大括号{} 输入格式: 输入一行包含括号的表达式如:[2 (33)],([]),{ewe [42]kk},[{}]等 输出格式: 输出“括号匹配”或“括号不匹配 输入样例: 在这里给出一组输入。例如。 [2 (33)]
时间: 2023-10-09 20:12:56 浏览: 85
以下是基于顺序栈实现括号匹配检查的算法的 Java 代码实现:
```java
import java.util.Scanner;
import java.util.Stack;
public class BracketMatching {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String expression = scanner.nextLine();
System.out.println(bracketMatching(expression));
}
public static String bracketMatching(String expression) {
Stack<Character> stack = new Stack<>();
for (char ch : expression.toCharArray()) {
if (ch == '(' || ch == '[' || ch == '{') {
stack.push(ch);
} else if (ch == ')' || ch == ']' || ch == '}') {
if (stack.empty()) {
return "括号不匹配";
}
char left = stack.pop();
if (left == '(' && ch != ')' ||
left == '[' && ch != ']' ||
left == '{' && ch != '}') {
return "括号不匹配";
}
}
}
if (stack.empty()) {
return "括号匹配";
} else {
return "括号不匹配";
}
}
}
```
示例输入:[2 (33)]
示例输出:括号匹配
阅读全文