思路展示
由于互为字母异位词的两个字符串包含的字母相同,因此对两个字符串分别进行排序之后得到的字符串一定是相同的(但是两个字符串分别排序时,不能改变原字符串,所以要用一个temp字符串来存储原字符串然后再进行排序),故可以将排序之后的字符串作为哈希表的键。
示例代码
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
unordered_map<string,vector<string>> myMap;
for(string str:strs){
string temp=str;
sort(temp.begin(),temp.end());
myMap[temp].push_back(str);
}
vector<vector<string>> res;
for(auto& [key,val]:myMap){
res.push_back(val);
}
return res;
}
};
效果展示