{"title":"Java 括号匹配算法:使用栈实现高效判断","description":"本文介绍使用 Java 语言实现括号匹配算法,通过栈数据结构有效地判断输入字符串中括号是否匹配。文章包含详细的算法步骤、代码示例和运行结果,帮助读者理解和应用该算法。","keywords":"括号匹配, 栈, Java, 算法, 字符串, 数据结构, 代码示例, 运行结果","content":"使用栈来实现括号匹配的判断。\n\n具体步骤如下:\n1. 创建一个空栈。\n2. 遍历输入的字符串的每一个字符:\n - 如果字符是左括号(包括花括号、中括号、小括号),将其压入栈中。\n - 如果字符是右括号,判断栈是否为空:\n - 若栈为空,说明没有左括号与之匹配,直接返回括号不匹配。\n - 若栈不为空,取出栈顶元素与当前字符进行匹配:\n - 如果匹配成功,将栈顶元素弹出。\n - 如果匹配不成功,返回括号不匹配。\n3. 遍历完字符串后,判断栈是否为空:\n - 若栈为空,说明所有括号都匹配成功,返回括号匹配。\n - 若栈不为空,说明还有左括号没有匹配成功,返回括号不匹配。\n\n以下是示例代码:\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 input = scanner.nextLine();\n boolean isMatching = bracketMatching(input);\n if (isMatching) {\n System.out.println("括号匹配");\n } else {\n System.out.println("括号不匹配");\n } \n }\n\n public static boolean bracketMatching(String input) {\n Stack<Character> stack = new Stack<>();\n for (int i = 0; i < input.length(); i++) {\n char ch = input.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.peek();\n if ((ch == '}' && top == '{') || (ch == ']' && top == '[') || (ch == ')' && top == '(')) {\n stack.pop();\n } else {\n return false;\n }\n }\n }\n return stack.isEmpty();\n }\n}\n\n\n运行示例:\n请输入包含括号的字符串:{[()]}\n括号匹配

Java 括号匹配算法:使用栈实现高效判断

原文地址: https://www.cveoy.top/t/topic/pqsJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录