普通
注意点:
1.高效的hash : res = res << 1 ^ item
2.unordered_map 的使用自定义hash算法 第三个参数传function类型
vector<vector<string>> groupAnagrams(vector<string> &strs) {
auto vectorHash=[](vector<int> v)->size_t{
int res = 0;
for (const auto &item: v) {
res = res << 1 ^ item;
}
return res;
};
unordered_map<vector<int>, vector<string>, decltype(vectorHash)> unorderedMap(0, vectorHash);
vector<vector<string >> res;
for (const auto &str: strs) {
vector<int> v(26);
for (const auto &item: str) {
v[item - 'a']++;
}
unorderedMap[v].push_back(str);
}
for (const auto &item: unorderedMap) {
res.push_back(item.second);
}
return res;
}