function PrintSubstringWithKDistinctChars(s, k) {
let substrings = []
for (let i = 0; i < s.length; i++) {
let ch = s.charAt(i);
let tmp = "" + ch;
let set = new Set();
set.add(ch);
for (let j = i + 1; j < s.length; j++) {
const next_ch = s.charAt(j);
set.add(next_ch);
tmp += next_ch;
if (tmp.length >= k && set.size == k) {
substrings.push(tmp)
}
}
}
console.log(substrings);
}
const str = "substrings";
const k = 4;
PrintSubstringWithKDistinctChars(str, k);
/*
run:
[
'subst', 'ubst',
'bstr', 'stri',
'trin', 'ring',
'ings'
]
*/