js判读有效括号

// 给定一个只包括'(',')','{','}','[',']'的字符串,判断字符串是否有效。
// 左括号必须用相同类型的右括号闭合。
// 左括号必须以正确的顺序闭合
// 空字符串可被认为是有效字符串
// 输入:'()'
// 输出:true
// 输入:'(}'
// 输出:false

var isValid = function(s){
    let temp={
        '(':')',
        '{':'}',
        '[':']'
    }
    let res = [];
    for(let i=0; i<s.length; i++){
        console.log(temp[s[i]])
        //分别拿传入的字符串作为temp的键,看看能否得到值
        if(temp[s[i]]){
            //有值,说明这个键存在,左括号则推入栈中
            res.push(s[i])
            console.log(res)
        }else{
            //判断栈顶元素是否和当前右括号匹配,匹配则删除栈顶,否则直接false
            if(temp[res.pop()] != s[i]) return false //直接判断false,优化代码
        }
    }
    //最后判断左括号是否为空,括号是否成对出现
    return res.length===0
};

 

posted @ 2020-08-24 11:50  石头记1  阅读(1025)  评论(0编辑  收藏  举报