Journal Archive

/**
 * @param {string[]} words
 * @return {number}
 */
var maxProduct = function(words) {
	// helper function
    const isDistinctPair = (a, b) => {
        for (letter of a) {
            if (b.includes(letter)) {
                return false;
            }
        }
        return true;
    }
    
    let maxProd = 0;
	
    for (let i = 0; i < words.length - 1; i++) {
        for (let j = i + 1; j < words.length; j++) {
            if (isDistinctPair(words[i], words[j])) {
                maxProd = Math.max(maxProd, words[i].length * words[j].length)
            }
        }
    }
    return maxProd;
};

Day 67: Solving one of LeetCode problems

318. Maximum Product of Word Lengths Difficulty - Medium

Given a string array words, return the maximum value of length(word[i]) * length(word[j]) where the two words do not share common letters. If no such two words exist, return 0.

 

Example 1:

Input: words = ["abcw","baz","foo","bar","xtfn","abcdef"]
Output: 16
Explanation: The two words can be "abcw", "xtfn".
		

Example 2:

Input: words = ["a","ab","abc","d","cd","bcd","abcd"]
Output: 4
Explanation: The two words can be "ab", "cd".
		

Example 3:

Input: words = ["a","aa","aaa","aaaa"]
Output: 0
Explanation: No such pair of words.