用java实现、括号匹配问题从键盘输入一个包含有花括号、中括号、小括号的字符串判断括号是否正确匹配输出判断结果。例如:输入d3ac则正确匹配。输入qw67g则错误匹配。
可以使用栈来实现括号匹配的问题。具体步骤如下:
- 创建一个栈,用于存储左括号;
- 遍历输入的字符串,对于每个字符:
- 如果是左括号(包括'{'、'['、'('),则将其压入栈中;
- 如果是右括号(包括'}'、']'、')'),则判断栈是否为空,如果为空或栈顶元素与当前右括号不匹配,则括号匹配失败,输出错误匹配;
- 如果是其他字符,则继续遍历下一个字符;
- 遍历完所有字符后,判断栈是否为空,如果为空,则括号匹配成功,输出正确匹配;否则,输出错误匹配。
以下是使用Java实现的代码示例:
import java.util.Scanner;
import java.util.Stack;
public class BracketMatching {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入包含括号的字符串:");
String input = scanner.nextLine();
boolean isMatched = checkBracketMatching(input);
if (isMatched) {
System.out.println("括号匹配成功,正确匹配。");
} else {
System.out.println("括号匹配失败,错误匹配。");
}
}
public static boolean checkBracketMatching(String input) {
Stack<Character> stack = new Stack<>();
for (char c : input.toCharArray()) {
if (c == '{' || c == '[' || c == '(') {
stack.push(c);
} else if (c == '}' || c == ']' || c == ')') {
if (stack.isEmpty() || !isMatchingPair(stack.peek(), c)) {
return false;
}
stack.pop();
}
}
return stack.isEmpty();
}
public static boolean isMatchingPair(char left, char right) {
return (left == '{' && right == '}') || (left == '[' && right == ']') || (left == '(' && right == ')');
}
}
运行程序,输入包含括号的字符串,即可判断括号是否正确匹配
原文地址: https://www.cveoy.top/t/topic/hDoO 著作权归作者所有。请勿转载和采集!