/** * @param {string} s * @param {string} p * @return {number[]} */ var findAnagrams = function(s, p){ let countP = Array(26).fill(0) const length = p.length const aCodeIndex = 'a'.charCodeAt(0) for (constchar of p){ let index = char.charCodeAt(0) - aCodeIndex countP[index] += 1 } let res = [] for (let i=0;i<=s.length-length;i++){ let countS = Array(26).fill(0) let left = i; let right = i+length-1 let matched = true for (constchar of s.slice(left,right+1)){ let index = char.charCodeAt(0) - aCodeIndex countS[index] += 1 } for (let j=0;j<26;j++){ if (countP[j]!=countS[j]){ matched = false break } } if (matched){ res.push(left) } } return res };