算法代码

有效地括号

2020-05-15  本文已影响0人  windUtterance

题目描述
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。

示例
输入: "([)]"
输出: false

Java代码

class Solution {
    public boolean isValid(String s) {
        if(s.length() == 0 || s == null) return true;
        Map<Character, Character> map = new HashMap<>();
        map.put('}', '{');
        map.put(')', '(');
        map.put(']', '[');

        Deque<Character> dq = new ArrayDeque<>();
        for(char c : s.toCharArray()) {
            if(c == '{' || c == '(' || c == '[') {
                dq.push(c);
            } else {
                if(dq.size() == 0 || map.get(c) != dq.pop()) return false;
            }
        }

        return dq.size() == 0;
    }   
}
上一篇下一篇

猜你喜欢

热点阅读