先对字符串进行排序,然后利用哈希表存储排过序的字符串,key值是当时的res大小(也就是从0开始的键值)
值得注意的是发现了一种很方便的push_back写法,就是注释的那句。
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
if(strs.size()==0) return {{}};
unordered_map<string,int> unmap;
vector<vector<string>> res;
for(int i=0;i<strs.size();i++){
auto tmp=strs[i];
sort(tmp.begin(),tmp.end());
if(unmap.find(tmp)==unmap.end()){
unmap[tmp]=res.size();
res.push_back(vector<string>(1,strs[i]));//以前没见过的push_back写法
}
else res[unmap[tmp]].push_back(strs[i]);
}
return res;
}
};