File tree 1 file changed +34
-0
lines changed
1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public:
3
+ vector<string> wordSubsets(vector<string>& words1, vector<string>& words2) {
4
+ int maxCharFreq[26] = {0};
5
+ int tempCharFreq[26];
6
+ for (const auto& word : words2) {
7
+ memset(tempCharFreq, 0, sizeof tempCharFreq);
8
+ for (char ch : word) {
9
+ tempCharFreq[ch - 'a']++;
10
+ }
11
+ for (int i = 0; i < 26; ++i) {
12
+ maxCharFreq[i] = max(maxCharFreq[i], tempCharFreq[i]);
13
+ }
14
+ }
15
+ vector<string> universalWords;
16
+ for (const auto& word : words1) {
17
+ memset(tempCharFreq, 0, sizeof tempCharFreq);
18
+ for (char ch : word) {
19
+ tempCharFreq[ch - 'a']++;
20
+ }
21
+ bool isUniversal = true;
22
+ for (int i = 0; i < 26; ++i) {
23
+ if (maxCharFreq[i] > tempCharFreq[i]) {
24
+ isUniversal = false;
25
+ break;
26
+ }
27
+ }
28
+ if (isUniversal) {
29
+ universalWords.emplace_back(word);
30
+ }
31
+ }
32
+ return universalWords;
33
+ }
34
+ };
You can’t perform that action at this time.
0 commit comments