关于力扣:力扣-20有效的括号

无效的括号

工夫复杂度:O(n),其中 n 是字符串 s 的长度。
空间复杂度:O(n+∣Σ∣),其中 Σ 示意字符集,本题中字符串只蕴含 6 种括号,∣Σ∣=6。栈中的字符数量为O(n),而哈希表应用的空间为 O(∣Σ∣),相加即可失去总空间复杂度。

  1. 由题意晓得匹配括号的流程合乎 “ 栈 ” 这种数据结构
  2. 顺次将左括号放入栈
  3. 匹配到右括号则出栈
  4. 遍历完结判断栈是否为空

    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;
    };

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理