美文网首页
567. Permutation in String

567. Permutation in String

作者: jluemmmm | 来源:发表于2021-12-05 21:13 被阅读0次

    判断字符串s2的连续子串是否包含s1的排列。

    双指针,保证count值不为正的情况下,判断是否存在一个区间,使得长度恰好为s1

    • 时间复杂度O(m + n),空间复杂度O(1)
    • Runtime: 84 ms, faster than 95.47%
    • Memory Usage: 40.2 MB, less than 92.33%
    /**
     * @param {string} s1
     * @param {string} s2
     * @return {boolean}
     */
    var checkInclusion = function(s1, s2) {
      const m = s1.length;
      const n = s2.length;
      if (m > n) {
        return false;
      }
      const count = new Array(26).fill(0);
      for (let i = 0; i < m; i++) {
        count[s1[i].charCodeAt() - 'a'.charCodeAt()]--;
      }
      let left = 0;
      for (let right = 0; right < n; right++) {
        const cur = s2[right].charCodeAt() - 'a'.charCodeAt();
        count[cur]++;
        
        while(count[cur] > 0) {
          count[s2[left].charCodeAt() - 'a'.charCodeAt()]--;
          left++;
        }
        if (right - left + 1 === m) {
          return true;
        }
      }
      return false;
    };
    

    相关文章

      网友评论

          本文标题:567. Permutation in String

          本文链接:https://www.haomeiwen.com/subject/aokwxrtx.html