題目
找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;
}
};