LeetCode #20 有效括号

Posted 三笠·阿卡曼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode #20 有效括号相关的知识,希望对你有一定的参考价值。

题目

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-parentheses

示例

在这里插入图片描述

最佳代码

class Solution {
    public boolean isValid(String s) {
        Deque<Character> stack = new LinkedList<>();

        //遍历字符串中所有字符依次判断
        for (int i = 0; i < s.length(); i++) {

            char ch = s.charAt(i);

            //判断当前字符是左括号,还是右括号
            
            //如果是左括号,直接将对应的右括号入栈
            if (ch == '(') {
                stack.push(')');
            } else if (ch == '[') {
                stack.push(']');
            } else if (ch == '{') {
                stack.push('}');
            } else {
                //如果是右括号
                if (stack.isEmpty()) {
                    return false;
                }

                if (stack.pop() != ch) {
                    return false;
                }
            }

        }

        return stack.isEmpty();
    }
}

以上是关于LeetCode #20 有效括号的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 20. 有效的括号

leetcode20有效的括号

LeetCode第20题——有效的括号

LeetCode:有效的括号20

leetcode-20.有效的括号

LeetCode 20. 有效的括号