linqibin/leetcode

20.有效的括号

Opened this issue · 0 comments

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

有效字符串需满足:

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

利用解决,遇到左边括号入栈,遇到右边括号出栈判断。

/**
 * @param {string} s
 * @return {boolean}
 */
function isValid(s) {
    const stack = [];

    for(let c of s){
        switch(c){
            case '(':
            case '{':
            case '[':
                stack.push(c);
                break;
            case ')':
                if(stack.pop() != '(') return false;
                break;
            case '}':
                if(stack.pop() != '{') return false;
                break;
            case ']':
                if(stack.pop() != '[') return false;
                break;
        }

    }

    if(stack.length > 0) return false;

    return true;
}