Leetcode•Nov 10, 2026
Word Subsets
Hazrat Ali
Leetcode
A string b is a subset of string a if every letter in b occurs in a including multiplicity.
- For example,
"wrr"is a subset of"warrior"but is not a subset of"world".
A string a from words1 is universal if for every string b in words2, b is a subset of a.
Return an array of all the universal strings in words1. You may return the answer in any order.
Example 1:
Input: words1 = ["amazon","apple","facebook","google","leetcode"], words2 = ["e","o"]
Output: ["facebook","google","leetcode"]
Example 2:
Input: words1 = ["amazon","apple","facebook","google","leetcode"], words2 = ["lc","eo"]
Output: ["leetcode"]
Example 3:
Input: words1 = ["acaac","cccbb","aacbb","caacc","bcbbb"], words2 = ["c","cc","b"]
Output: ["cccbb"]
Solution
var wordSubsets = function(words1, words2) {
const maxFreq = new Array(26).fill(0);
for (const word of words2) {
const freq = new Array(26).fill(0);
for (const ch of word) {
freq[ch.charCodeAt(0) - 97]++;
}
for (let i = 0; i < 26; i++) {
maxFreq[i] = Math.max(maxFreq[i], freq[i]);
}
}
const result = [];
for (const word of words1) {
const freq = new Array(26).fill(0);
for (const ch of word) {
freq[ch.charCodeAt(0) - 97]++;
}
let isUniversal = true;
for (let i = 0; i < 26; i++) {
if (freq[i] < maxFreq[i]) {
isUniversal = false;
break;
}
}
if (isUniversal) {
result.push(word);
}
}
return result;
};