leet_code有效的括号

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

有效字符串需满足:

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

就是用一个栈

/**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function(s) {
    if(s.length == 0){
        return true;
    }else{
        //这里用栈
        let map = {"(":")","[":"]","{":"}",")":null,"}":null,"]":null};
        let temp = [];
        s = s.split("");
        for(let i = 0; i < s.length; i++){
            if(map[s[i]] != null){
                //说明是左括号
                temp.push(s[i]);
            }else{
                //取顶端的字母,如果不匹配就直接return false,一定是左括号 
                let temp2 = temp[temp.length - 1];
                if(s[i] != map[temp2]){
                    //说明不匹配
                    return false
                }else{
                    temp.pop();
                }
            }
        }
        if(temp.length > 0){
            return false;
        }else{
            return true;
        }
    }
};

猜你喜欢

转载自blog.csdn.net/qq_41199852/article/details/106760438