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]));。