推荐博客:
for(auto i : v)遍历容器元素_for auto 遍历-CSDN博客
字母异位词都有一个特点:也就是对这个词排序之后结果会相同。所以将排序之后的string作为key,将排序之后能变成key的单词组vector<string>作为value。
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
unordered_map<string,vector<string>> hmap;
int len=strs.size();
for(int i=0;i<len;i++){
string temp=strs[i];
sort(temp.begin(),temp.end());
hmap[temp].emplace_back(strs[i]);
}
vector<vector<string>> res;
int len_hmap=hmap.size();
for(auto i:hmap){
res.emplace_back(i.second);
}
return res;
}
};
1.sort字符串写法
sort(temp.begin(),temp.end());
2.在 vector 容器尾部添加一个元素
hmap[temp].emplace_back(strs[i]);
3.遍历哈希表(value)
for(auto i:hmap){
res.emplace_back(i.second);
}