问题很简单,把左括号全部押栈,遇到右括号全部出栈,通过map比较两个值,最后栈里时空的就可以了
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {
if(!s.length){ return true }
const pair = {
'{': '}',
'(': ')',
'[': ']'
}
let stack = [];
for(let i = 0; i < s.length; i ++){
if(pair[s[i]]){
stack.push(s[i]);
}else {
let popped = stack.pop(s[i]);
if (pair[popped] !== s[i]){
return false;
}
}
}
return stack.length === 0;
};
网友评论