思路:是左边直接入栈,是右边判断是否与栈顶元素成对,若不成对就不是有效,成对就出栈,最后栈内还有元素就不是有效。
var isValid = function(s) {
const map = {
'(': ')',
'{': '}',
'[': ']',
}
const stack = []
for (let i = 0; i < s.length; i ++) {
const item = s[i]
if (item in map) {
stack.push(item)
} else {
if (map[stack.slice(-1)] === item) {
stack.pop()
} else {
return false
}
}
}
return !stack.length
};
结果: