Java 括号匹配算法:使用栈判断括号是否正确匹配
{/'title/':/'Java 括号匹配算法:使用栈判断括号是否正确匹配/',/'description/':/'本文介绍使用 Java 编写括号匹配算法,使用栈数据结构来判断包含花括号{}、中括号[]、小括号()的字符串中括号是否正确匹配。/',/'keywords/':/'括号匹配, 算法, Java, 栈, 数据结构, 匹配/',/'content/':/'使用栈的数据结构可以轻松解决判断括号是否正确匹配的问题。具体步骤如下://n1. 创建一个空栈。//n2. 遍历输入的字符串中的每一个字符。//n3. 如果字符是左括号(包括{、[、(),则将其压入栈中。//n4. 如果字符是右括号(包括}、]、)),则检查栈顶元素是否与该右括号匹配。如果匹配,则将栈顶元素弹出栈;如果不匹配,则返回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//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 ((c == '}' && top != '{') ||//n (c == ']' && top != '[') ||//n (c == ')' && top != '(')) {//n return false;//n }//n }//n }//n//n return stack.isEmpty();//n }//n//n public static void main(String[] args) {//n String str = /'{[()]}//n/';//n boolean result = isBracketMatching(str);//n System.out.println(result); // 输出true//n//n str = /'{[(])}//n/';//n result = isBracketMatching(str);//n System.out.println(result); // 输出false//n }//n}//n//n//n在上述示例中,我们定义了一个isBracketMatching方法来判断括号是否正确匹配。在main方法中,我们分别测试了一个正确匹配的字符串和一个不正确匹配的字符串。程序会依次输出true和false。/
原文地址: https://www.cveoy.top/t/topic/pqel 著作权归作者所有。请勿转载和采集!