首先对所有的字符串进行排序,然后用一个哈希表记录排序完后的值和排序前的值,由于在排序完后异位词都会进入同一个哈希表,所以只要遍历哈希表就能得出答案
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
vector<vector<string>>res;
map<string,vector<string>>m;
for(int i=0;i<strs.size();i++){
string s=strs[i];
sort(s.begin(),s.end());
m[s].push_back(strs[i]);
}
for(auto it=m.begin();it!=m.end();it++){
res.push_back(it->second);
}
return res;
}
};