class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
vector<vector<string>> ret;
multimap<string,string> mmap;
int n = strs.size();
for(int i=0;i<n;++i){
string s=strs[i];
sort(s.begin(),s.end());
mmap.insert(make_pair(s,strs[i]));
}
multimap<string,string>::iterator ite=mmap.begin();
int cnt=0;
while(ite!=mmap.end()){
cnt= mmap.count(ite->first);
vector<string> tmp;
for(int i=0;i<cnt;++i,++ite){
tmp.push_back(ite->second);
}
ret.push_back(tmp);
}
return ret;
}
};
本题用到了关联容器的思想,也可以将 mmap.insert(make_pair(s,strs[i]));写成 mmap.insert(pair<string,string>(s,strs[i]));。