let s = "bbaaaaaaaabgabgbagbabgababgbagbabgabababababggbabaggbaaaaaaggag", t = "bag"
const resData = new Set();
const tresData = new Set();
const sl = s.length;
const tl = t.length;
function name(z, m, res = "") {
if (m === tl) {
resData.add(res);
return;
}
for (let i = z; i < sl; i++) {
if (s[i] === t[m]) {
res += i;
if (tresData.has(res)) {
res = res.substring(0, res.length - String(i).length);
continue;
}
name(i + 1, m + 1, res);
tresData.add(res);
res = res.substring(0, res.length - String(i).length);
}
}
return;
}
name(0, 0)
console.log(resData);
06-16
347
04-16
192