美文网首页
括号匹配问题

括号匹配问题

作者: simon_kin | 来源:发表于2021-03-19 15:15 被阅读0次

问题描述

有效字符串需满足:

左括号必须用相同类型的右括号闭合。包括:“( )”,“[ ]”,“{ }”。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。

    // 括号匹配问题
    public static boolean isMatch(String str){

        Stack<Character> stack = new Stack();

        for (int i = 0, len =str.length(); i<len;i++){
            char ch = str.charAt(i);
            if (ch == '{' || ch == '['  || ch == '(' ){
                stack.push(ch);
            }

            if (ch == '}' || ch == ']'  || ch == ')' ){
                if (stack.isEmpty()){
                    return false;
                }
                // 如果栈顶元素和下一个右括号相匹配,则将其栈顶元素出栈
                if ((stack.peek() == '(' && ch == ')') 
                        || (stack.peek() == '[' && ch == ']') 
                        || (stack.peek() == '{' && ch == '}') ) {   
                    stack.pop();
                }
            }
        }
        return stack.isEmpty();
    }

相关文章

  • 3. 一些算法问题

    1. 括号匹配问题 算法:括号匹配问题 - 简书 C程序括号匹配检查 - Jason ZHANG的博客 - CSD...

  • 括号匹配问题

    这个问题的描述很简单,就是若括号匹配则返回true,否则返回false。 Given a string conta...

  • 括号匹配问题

    问题描述 有效字符串需满足: 左括号必须用相同类型的右括号闭合。包括:“( )”,“[ ]”,“{ }”。左括号必...

  • 栈、队列解决问题

    栈解决括号匹配问题 一个字符串中包含小括号、中括号、大括号,判断该字符串中的括号是否匹配 ()()[]{} 匹配...

  • chap3-栈和队列

    括号匹配问题 // 括号匹配,遇到 '\0' 结束// 遇到花、中、圆左括号进栈,遇到花、中、圆右括号检查栈顶元素...

  • 数据结构中使用指针运算括号匹配问题

    使用指针实现括号匹配问题:

  • 算法:括号匹配问题

    还记得有一次笔试题,有一道括号匹配的算法题,当时没有学习数据结构和算法,思路很模糊,后来了解一些数据结构之后就有思...

  • 判断括号匹配问题

    问题描述 给定一个字符串,其中的字符包含任意字符包括三种括号:花括号{ }、中括号[ ]、圆括号( )。设计算法,...

  • (栈)括号匹配问题

    c语言版

  • 力扣第20题:有效的括号

    经典的括号匹配问题,用stack解决。

网友评论

      本文标题:括号匹配问题

      本文链接:https://www.haomeiwen.com/subject/dwgvcltx.html