写点什么

LeetCode 题解:20. 有效的括号,栈,JavaScript,详细注释

用户头像
Lee Chen
关注
发布于: 2020 年 08 月 27 日
LeetCode题解:20. 有效的括号,栈,JavaScript,详细注释

阅读更多系列文章请访问我的GitHub 博客



原题链接:https://leetcode-cn.com/problems/valid-parentheses/



解题思路:



  1. 遍历数组,遇到左括号时,将对应的右括号存入栈。

  2. 遇到右括号时,将栈顶元素pop,查看两者是否相同。

  3. 若不相同,表示存在无效括号。

  4. 遍历完成后,查看字符串长度,如果字符串不为空,表示存在无效括号,如'{'。



/**
* @param {string} s
* @return {boolean}
*/
var isValid = function (s) {
let stack = [];
let map = {
'(': ')',
'[': ']',
'{': '}',
};
for (const char of s) {
// 遇到左括号时,向栈中存入右括号
if (map[char]) {
stack.push(map[char]);
} else if (stack.pop() !== char) {
// 遇到右括号时,判断当前括号是否相等。
// 如果不相等则表示遇到了无效括号
return false;
}
}
// 退出循环时,如果栈不为空,则表示存在无效括号
// 此处为了避免字符串长度为奇数的情况,如'{'
return !stack.length;
};



发布于: 2020 年 08 月 27 日阅读数: 48
用户头像

Lee Chen

关注

还未添加个人签名 2018.08.29 加入

还未添加个人简介

评论

发布
暂无评论
LeetCode题解:20. 有效的括号,栈,JavaScript,详细注释