Javascript Code
/**
* @param {string} s
* @param {string[]} words
* @return {number[]}
*/
var findSubstring = function (s, words) {
if (!s || words.length == 0) return [];
let wordMap = {};
for (let word of words) {
wordMap[word] = (wordMap[word] || 0) + 1
}
let eachWordSize = words[0].length;
let numOfWords = words.length;
let ans = [];
for (let i = 0; i <= s.length - eachWordSize * numOfWords; i++) {
let seen = {};
let j = 0;
while (j < numOfWords) {
let currentWord = s.substring(i + j * eachWordSize, i + (j + 1) * eachWordSize);
if (!wordMap[currentWord]) break;
seen[currentWord] = (seen[currentWord] || 0) + 1;
if (seen[currentWord] > wordMap[currentWord]) {
break;
}
j++;
}
if (j == numOfWords) {
ans.push(i)
}
}
return ans
};
Top comments (0)