原题:
解决方法:
对每个单词进行排序,如果单词是变形词,排序后将具有相同的键值,用一个哈希表保存键值以及对应的单词。
代码:
Given an array of strings, group anagrams together.
For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"]
,
Return:
[ ["ate", "eat","tea"], ["nat","tan"], ["bat"] ]
Note: All inputs will be in lower-case.
对每个单词进行排序,如果单词是变形词,排序后将具有相同的键值,用一个哈希表保存键值以及对应的单词。
代码:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
unordered_map<string, vector<string>> m;
for(auto str: strs){
string temp = str;
sort(temp.begin(), temp.end());
m[temp].push_back(str);
}
vector<vector<string>> res;
for(auto i: m){
res.push_back(i.second);
}
return res;
}