JSFiddle - React, Tailwind, and code Playground
by Paco86
JavaScript
var findAnagrams = function(s, p) {
var map = new Map();
for (var i = 0; i < p.length; i++) {
map.set(p[i], (map.get(p[i]) || 0) + 1);
}
var match = 0;
var res = [];
var start = 0, end = 0;
while (end < s.length) {debugger
if (map.has(s[end]) && map.get(s[end]) > 0) {
match += 1;
}
map.set(s[end], (map.get(s[end]) || 0) - 1);
end += 1;
if (match === p.length) {
res.push(start);
}
if (end - start === p.length) {
if (map.has(s[start]) && map.get(s[start]) >= 0) {
match -= 1;
}
map.set(s[start], (map.get(s[start]) || 0) + 1);
start += 1;
}
}
return res;
};
console.log(findAnagrams("acab", "ab"));