(再战leetcode)有效的括号

(再战leetcode)有效的括号,第1张

(再战leetcode)有效的括号 20.有效的括号 题目描述

解题思路

如果是左边的括号就让他进栈,进栈。
比如 ([{}])

左边进栈 ([{右边第一个}然后正好对上最后一个出栈。如果到最后堆栈为空就返回true

特殊情况
如果是{}]
就是在堆栈空的时候来了个右边的括号那绝对是匹配不上的

代码

class Solution {
    public boolean isValid(String s) {
        int n = s.length();
        Deque stack = new linkedList<>();
        HashMap map = new HashMap() {{
            put(')', '(');
            put('}', '{');
            put(']', '[');
        }};
        for (int i = 0; i < n; i++) {
            char ch = s.charAt(i);
            if (map.containsKey(ch)) {
                if (stack.isEmpty() || stack.peek() != map.get(ch)) {
                    return false;
                }
                stack.pop();
            } else {
                stack.push(ch);
            }
        }
        return stack.isEmpty();
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5702361.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存