解法1
使用栈,来处理。遇到左括号就入栈,遇到右括号就去栈中寻找最近的左括号,看是否匹配
/*
* @lc app=leetcode.cn id=20 lang=javascript
*
* [20] 有效的括号
*/
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function (s) {
let slen = s.length;
if (slen % 2 === 1) {
return false;
}
let stack = [];
for (let val of s) {
if (val === "(" || val === "{" || val === "[") {
stack.push(val);
} else {
let leftVal = stack.pop();
if (
(leftVal === "(" && val === ")") ||
(leftVal === "{" && val === "}") ||
(leftVal === "[" && val === "]")
) {
continue;
} else {
return false;
}
}
}
if (stack.length > 0) {
return false;
}
return true;
};