Problem: 916. Word Subsets 单词子集对words1中的单词统计每个字符的频次对words2统计每个单词的字符频次并且取每个单词的最大频次拿到并集最后查找words1频次找到符合要求的单词Codeclass Solution { public: vectorstring wordSubsets(vectorstring words1, vectorstring words2) { int n words1.size(); vectorunordered_mapchar, int tr(n); for (int i 0; i n; i) { unordered_mapchar, int ump; for (int j 0; j words1[i].size(); j) { ump[words1[i][j]]; } tr[i] ump; } vectorint ch(26, 0); for (int k 0; k words2.size(); k) { vectorint tmp(26, 0); for(int i 0; i words2[k].size(); i) { tmp[words2[k][i]-a]; } for(int i 0; i 26; i) { ch[i] max(tmp[i], ch[i]); } } unordered_mapchar, int umpump; for(int j 0; j 26; j) { umpump[j a] ch[j]; } bool find; vectorstring ret; for (int i 0; i n; i) { find true; for(auto [k, l] : umpump) { if(tr[i][k] l) { find false; break; } } if(find true) { ret.push_back(words1[i]); } } return ret; } };