思路
在原始信息和哈希映射使用的实际键值之间建立映射关系,先将单词字母按照字母表的顺序进行排列,若排列的结果相同,则为字母异位词
代码
class Solution { public: vector<vector<string>> groupAnagrams(vector<string>& strs) { unordered_map<string,vector<string>>hashmap; for(auto s:strs) { string tmp = s; sort(tmp.begin(),tmp.end());//将单词按照字母顺序排序 hashmap[tmp].push_back(s);//保存每个字母顺序中的单词 比如 abc 的有哪些单词 } int len = hashmap.size(); vector<vector<string>> res(len); int index = 0 ; for(auto i:hashmap) { res[index] = i.second;//得到每个单词顺序的单词 ++index; } return res; } };