题目
找words1 里面有几个字串是好的
好的 = 出现的字母比words2 每一个string里面出现的字母还要多
思路
先找words2每个字母出现最多次的次数
这一定是word1 分别字母 至少要出现的次数
就好了
class Solution {
public:
vector<string> wordSubsets(vector<string>& words1, vector<string>& words2)
{
int n = words1.size();
vector<string> res ;
vector<int> save(26,0);
for(string k : words2)
{
vector<int> tmp(26,0);
for(char i : k)
{
tmp[i-'a'] ++;
}
for(int i = 0 ; i < 26 ; i ++)
{
save[i] = max(save[i] , tmp[i]);
}
}
for(string k : words1)
{
vector<int> tmp(26,0);
for(char i : k)
{
tmp[i-'a'] ++;
}
int ok = 1;
for(int i = 0 ; i < 26 ; i ++)
{
if(save[i] > tmp[i])
{
ok = 0;
continue;
}
}
if(ok) res.push_back(k);
}
return res;
}
};