DEV Community

Rakesh Reddy Peddamallu
Rakesh Reddy Peddamallu

Posted on

Leetcode - 30. Substring with Concatenation of All Words

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
};

Enter fullscreen mode Exit fullscreen mode

Top comments (0)