括号匹配问题
从键盘输入一个包含有花括号{}、中括号[]、小括号()的字符串,判断括号是否正确匹配,输出判断结果。
例如:
输入({d}{([a])({c})}),则正确匹配。
输入[q{w(6[7]g)]},则错误匹配。
括号匹配问题,数据结构JAVA
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
瞬间的未来式 2023-06-26 10:52关注该回答引用chatgpt:

package com.school; 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(); if (isBracketMatching(input)) { System.out.println("括号匹配正确"); } else { System.out.println("括号匹配错误"); } } private static boolean isBracketMatching(String input) { Stack<Character> stack = new Stack<>(); for (char ch : input.toCharArray()) { if (ch == '(' || ch == '[' || ch == '{') { stack.push(ch); } else if (ch == ')' || ch == ']' || ch == '}') { if (stack.isEmpty()) { return false; // 右括号多于左括号,匹配错误 } char top = stack.pop(); if ((ch == ')' && top != '(') || (ch == ']' && top != '[') || (ch == '}' && top != '{')) { return false; // 括号类型不匹配,匹配错误 } } } return stack.isEmpty(); // 括号匹配正确当且仅当栈为空 } }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报