Java 括号匹配算法:使用栈判断括号是否正确匹配
{"title":"Java 括号匹配算法:使用栈判断括号是否正确匹配","description":"本文介绍使用Java语言实现判断括号是否正确匹配的算法。该算法使用栈数据结构,可以有效地检查括号的匹配关系,例如花括号{}、中括号[]、小括号()。文章提供了完整的代码示例,并解释了算法的步骤和原理。","keywords":"Java, 括号匹配, 算法, 栈, 数据结构, 代码示例","content":""从键盘输入一个包含有花括号{}、中括号[]、小括号()的字符串,判断括号是否正确匹配,输出判断结果。\n请用Java语言编写内容:可以使用栈来判断括号是否正确匹配。具体步骤如下:\n\n1. 创建一个空栈,用于存放左括号。\n2. 遍历输入的字符串中的每个字符:\n - 如果字符是左括号(花括号、中括号或小括号),将其压入栈中。\n - 如果字符是右括号,判断栈是否为空:\n - 如果栈为空,则说明右括号没有对应的左括号,括号不匹配,返回false。\n - 如果栈不为空,将栈顶的左括号弹出,判断它们是否匹配:\n - 如果左括号与右括号不匹配(例如"{]"),括号不匹配,返回false。\n - 如果左括号与右括号匹配,则继续遍历下一个字符。\n3. 遍历结束后,判断栈是否为空:\n - 如果栈为空,则所有括号都匹配,返回true。\n - 如果栈不为空,则还有左括号没有右括号与之匹配,括号不匹配,返回false。\n\n下面是完整的Java代码实现:\n\njava\nimport java.util.Stack;\nimport java.util.Scanner;\n\npublic class BracketMatching {\n public static void main(String[] args) {\n Scanner scanner = new Scanner(System.in);\n System.out.print("请输入包含花括号、中括号、小括号的字符串:");\n String str = scanner.nextLine();\n boolean isMatching = isBracketMatching(str);\n if (isMatching) {\n System.out.println("括号匹配");\n } else {\n System.out.println("括号不匹配");\n }\n }\n\n public static boolean isBracketMatching(String str) {\n Stack<Character> stack = new Stack<>();\n for (int i = 0; i < str.length(); i++) {\n char ch = str.charAt(i);\n if (ch == '{' || ch == '[' || ch == '(') {\n stack.push(ch);\n } else if (ch == '}' || ch == ']' || ch == ')') {\n if (stack.isEmpty()) {\n return false;\n }\n char top = stack.pop();\n if ((ch == '}' && top != '{') || (ch == ']' && top != '[') || (ch == ')' && top != '(')) {\n return false;\n }\n }\n }\n return stack.isEmpty();\n }\n}\n\n\n运行代码,输入包含括号的字符串,即可判断括号是否正确匹配。"}
原文地址: https://www.cveoy.top/t/topic/pxhi 著作权归作者所有。请勿转载和采集!