{"title":"Java 括号匹配算法 - 使用栈实现", "description":"本文介绍如何使用Java语言实现一个判断字符串中括号是否匹配的算法,并提供详细代码示例和解释。", "keywords":"括号匹配, 栈, Java, 算法, 数据结构", "content":"使用栈来判断括号是否正确匹配。具体步骤如下:\n\n1. 创建一个栈(可以使用Java中的Stack类)。\n2. 遍历字符串中的每一个字符。\n3. 如果遇到左括号(花括号、中括号、小括号),将其压入栈中。\n4. 如果遇到右括号,判断栈是否为空,如果为空则说明右括号没有匹配的左括号,返回false。\n 如果栈不为空,将栈顶的左括号出栈,并判断左右括号是否匹配。如果不匹配,返回false。\n5. 遍历结束后,判断栈是否为空。如果栈为空,则说明所有括号都正确匹配,返回true;否则返回false。\n\n下面是一个示例的Java方法实现:\n\njava\nimport java.util.Stack;\n\npublic class BracketMatching {\n public static boolean isBracketMatching(String str) {\n Stack<Character> stack = new Stack<>();\n\n for (int i = 0; i < str.length(); i++) {\n char c = str.charAt(i);\n if (c == '(' || c == '[' || c == '{') {\n stack.push(c);\n } else if (c == ')' || c == ']' || c == '}') {\n if (stack.isEmpty()) {\n return false;\n }\n\n char top = stack.pop();\n if ((top == '(' && c != ')') ||\n (top == '[' && c != ']') ||\n (top == '{' && c != '}')) {\n return false;\n }\n }\n }\n\n return stack.isEmpty();\n }\n\n public static void main(String[] args) {\n String str = "[({})]";\n boolean result = isBracketMatching(str);\n System.out.println(result); // 输出 true\n }\n}\n\n\n以上代码中的 isBracketMatching 方法接受一个包含括号的字符串,返回一个布尔值表示括号是否正确匹配。在 main 方法中,我们可以传入不同的字符串进行测试。"}


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

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