解题思路
字母异位词:单词使用的字母和数量是相同的,仅仅是排列不同。
- 排序+计数的思想
- 字母异位词排序之后单词排列一致
哈希表的键值为排序之后的单词,键值对应的值为一组字母异位词。
代码
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
unordered_map<string,vector<string>> mp;
for(auto str : strs) {
string key = str;
sort(key.begin(),key.end());
//键值为排序之后的,一组字母异位词排序之后键值一样,所以可以直接插入到哈希表中
mp[key].push_back(str);
}
vector<vector<string>> ans;
for(auto it = mp.begin();it!=mp.end();it++) {
ans.push_back(it->second);
}
return ans;
}
};