给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合
var isValid = function (s) {
const rightMap = new Map([
["(", ")"],
["[", "]"],
["{", "}"],
]);
let stack = [];
for (let index = 0; index < s.length; index++) {
const element = s[index];
switch (element) {
case "{":
case "[":
case "(":
stack.push(element);
break;
default: {
if (stack.length === 0) {
return false;
}
let leftValue = stack.pop();
if (rightMap.get(leftValue) !== element) {
return false;
}
}
}
}
return stack.length === 0;
};
isValid("()");