使用哈希表建立 string 和 vector<string> 的关系,对于含有相同字符的字符串,先排序即可知道其是否字母异位。
注意使用 unorder_map 加快搜索速度, 使用 auto 可提高代码简洁度。
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
unordered_map<string, vector<string> > mp;
for(auto s: strs){
string tmp(s);
sort(tmp.begin(), tmp.end());
mp[tmp].push_back(s);
}
vector<vector<string> > res;
for(auto iter: mp){
res.push_back(iter.second);
}
return res;
}
};