js
具体思路,让左括号( { [ 放入栈中,放完之后 取出栈顶元素 如果在map结构中存在,则正确闭合否则返回false;
// 比较灵巧的是用了map数据结构检测是否闭合 不比用对象了,方便很多
function isValid(s) {
const stack = [];
let myMap = new Map([[')', '('], [']', '['], ['}', '{']]);
for(let i = 0, c; i < s.length - 1, c = s[i];i++) {
if(!myMap.has(c)) {
stack.push(c);
}
else if(stack.length === 0 || myMap.get(c) !== stack.pop()) {
return false;
}
}
return stack.length === 0;
}