思路
- 同组的字符串有什么关系可以使它们使用同个key?——排序后相等
- 同组的字符串如何联系起来?——字符串向量
- 得出无序映射类型使用
<string,vector<string>>
代码
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
unordered_map<string, vector<string>> mp;
//使用排序后的字符串作为key 一个key对应一个字符串向量
for (string& str: strs) {
string key = str;
sort(key.begin(), key.end());
mp[key].emplace_back(str);
}
//将得到的无序映射转为二维向量字符串输出
vector<vector<string>> ans;
for (auto it = mp.begin(); it != mp.end(); ++it)
ans.emplace_back(it->second);
return ans;
}
};