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