SOURCE

function numKLenSubstrNoRepeats(str, k) {
  if (!str) {
    return 0;
  }
  let l = 0, r = 0, total = 0;
  const n = str.length;
  const smap = new Map();
  while (l < n && r < n) {
    if(!smap.has(str.charAt(r))) {
      smap.set(str.charAt(r), r);
      r++;
    } else {
      smap.delete(str.charAt(l));
      l++
    }
    if (smap.size === k) {
      total++;
      smap.delete(str.charAt(l));
    }
  }
  return total;
}

console.log(numKLenSubstrNoRepeats('havefunonleetcode', 5))
console 命令行工具 X clear

                    
>
console