231 字
1 分钟
算法之有效括号
20. 有效的括号
给定一个只包括 ’(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。、
- 左括号必须以正确的顺序闭合。

解法:
1.利用栈
思路:
根据题意,我们可以推断出以下要点:
- 有效括号字符串
- 长度,一定是偶数!
- 右括号前面,必须是相对应的左括号,才能抵消!
- 右括号前面,不是对应的左括号,那么该字符串,一定不是有效的括号!






/** * @param {string} s * @return {boolean} */let isValid = function (s) { if (s.length % 2) { return false; } let stack = []; for (let item of s) { switch (item) { case "{": stack.push(item); break; case "[": stack.push(item); break; case "(": stack.push(item); break; case "}": if (stack.pop() !== "{") return false; break; case "]": if (stack.pop() !== "[") return false; break; case ")": if (stack.pop() !== "(") return false; break; } } return !stack.length;};