【力扣】 - 20.有效的括号
有效的括号
时间复杂度:O(n),其中 n 是字符串 s 的长度。
空间复杂度:O(n+∣Σ∣),其中 Σ 表示字符集,本题中字符串只包含 6 种括号,∣Σ∣=6。栈中的字符数量为O(n),而哈希表使用的空间为 O(∣Σ∣),相加即可得到总空间复杂度。
- 由题意知道匹配括号的流程符合 “ 栈 ” 这种数据结构
- 依次将左括号放入栈
- 匹配到右括号则出栈
- 【【力扣】 - 20.有效的括号】遍历结束判断栈是否为空
var isValid = function (s) { const n = s.length; if (n % 2 === 1) { return false; } const pairs = new Map([ [')', '('], [']', '['], ['}', '{'] ]); const stk = []; for (let ch of s) { if (pairs.has(ch)) { if (!stk.length || stk[stk.length - 1] !== pairs.get(ch)) { return false; } stk.pop(); } else { stk.push(ch); } }; return !stk.length; };
推荐阅读
- 宽容谁
- 我要做大厨
- 增长黑客的海盗法则
- 画画吗()
- 2019-02-13——今天谈梦想()
- 远去的风筝
- 三十年后的广场舞大爷
- 叙述作文
- 20190302|20190302 复盘翻盘
- 学无止境,人生还很长