代码先锋网 代码片段及技术文章聚合

利用栈实现判断字符串中的括号是否匹配

技术标签: LeetCode  leetcode  链表  算法

题目:
  • 利用栈实现判断字符串中的括号是否匹配
解法
  /**
     * 判断括号是否匹配
     * 例如:{()[]} :匹配
     * {{[()}} :不匹配
     **/
    private static boolean judgeBracket(String s) {
        if (s.length() == 0) return false;
        Stack<Character> stack = new Stack();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (c == '{' || c == '(' || c == '[') {
                stack.push(c);
            }
            if (c == '}') {
                return !stack.isEmpty() && (stack.pop() == '{');
            }

            if (c == ')') {
                return !stack.isEmpty() && (stack.pop() == '(');
            }

            if (c == ']') {
                return !stack.isEmpty() && (stack.pop() == '[');
            }
        }
        return stack.isEmpty();
    }
版权声明:本文为sinat_35241409原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sinat_35241409/article/details/123187838

智能推荐

栈的应用 - 字符串括号匹配判断

本文实现目标: 基于栈stack数据结构判断字符串中的括号是否匹配,字符串中仅包含如下字符:( ) [ ] { }。 相关知识 为了完成任务,你需要掌握:1.如何创建一个栈,2.入栈、出栈操作。 创建栈、入栈和出栈操作请参考顺序存储的栈——分析与实现。 编程要求 在Bracket_Match中,利用栈stack判断括号是否匹配, 若匹配输出YES,否则输出NO,末尾换行。 ...

给定一个字符串判断字符串中的括号匹配是否合法

思路: 将给定的字符串,变为字符类型的数组,使用string的toCharArray() 判断字符是否为括号,这里创建一个函数来判断 使用栈的结构来匹配括号,从而判断括号是否匹配:` 创建一个栈数组,类型为char,依次判断字符是否为括号,如果为左括号,直接加入栈中 当碰到右括号的时候,先判断这个时候栈中有没有元素,如果没有,那么右括号过多,如果有和栈顶元素比较,如果配对,那么弹出栈顶元素,继续往...

【C++】字符串中的括号是否匹配

题目: Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, determine if the input string is valid. The b...

栈的应用(001)字符串中括号的匹配的实现

栈的应用(001)字符串中括号的匹配 伪代码如下(写代码前的思路) 源代码(具体实现,代码为转载,自己加了一点注释) 伪代码如下(写代码前的思路) 源代码(具体实现,代码为转载,自己加了一点注释) 原文章链接...

利用栈判断括号是否匹配

题目:String s = “…(…[…]…{…}…)…(…)…”; 判断括号是否匹配 `...

猜你喜欢

java 用链栈实现判断是否是回文串(将原链表中的一半存入栈),用链栈判断括号是否匹配

从键盘输入的是字符,不要有空格,要不 就判断错了(因为空格也是字符)   ...

数据结构与算法(七):基于栈实现字符串中的括号匹配

上一篇博客定义了栈的类,并实现了简单的“+-*/”四则运算,今天再利用栈结构实现一个简单的应用:判断字符串中的左右括号是否匹配的问题。 题目描述: 给定一个字符串,其中包括了左右括号以及其他字符,编写程序判断其中的左右括号是否合法。 假设只有四种括号: 左括号:['<', '(', '[','{']; 右括号:['>', ')', ']','}']; 解法: 定...

使用栈 匹配括号-----给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效

最近在做 leetCode 上的题目,记录下,方便下次查看回忆; 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。  ...

【13.77%】【codeforces 734C】Anton and Making Potions

time limit per test4 seconds memory limit per test256 megabytes inputstandard input outputstandard output Anton is playing a very interesting computer game, but now he is stuck at one of the levels. T...