- 查找共用字符
给你一个字符串数组 words ,请你找出所有在 words 的每个字符串中都出现的共用字符( 包括重复字符),并以数组形式返回。你可以按 任意顺序 返回答案。
1.使用数组v统计 统计每个字母在各个字符串中出现的最少次数,将其加入到结果数组中。 注意: (1)emplace_back可以直接传入构造函数的参数,减少一次构造的调用。 (2)使用字符构造string实例:string(1,c)。 v.push_back(string(1,c))=v.emplace_back(1,c).
class Solution {
public:
vector<string> commonChars(vector<string>& words) {
vector<int>v(26,INT_MAX);
for(auto &s:words){
vector<int>visited(26);
for(auto &x:s){
visited[x-'a']++;
}
for(int i=0;i<26;i++){
v[i]=min(v[i],visited[i]);
}
}
int n=words.size();
vector<string>res;
for(int i=0;i<26;i++){
while(v[i]>0){
res.emplace_back(1,i+'a');
v[i]--;
}
}
return res;
}
};
|