题目:
解题思路:
使用无序map也就是hash来完成,对于异位词(错为词),在单词的字符排序后,会得到一样的结果,也就是说错位词就是由一组字符以不一样的顺序排列罢了。将这组字符字符作为key值,将这组字符排列构成的错位词作为value,最后将结果添加到result中。
代码:
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
unordered_map<string,vector<string>> recond;//key(单词字母重新排序)->value(错位的单词)
vector<vector<string>> result;
for(const auto& str:strs)
{
string temp=str;
sort(temp.begin(),temp.end());//将单词字符排序,用于recode添加相同字符组成的错位单词
recond[temp].push_back(str);
}
//遍历无序容器,将错位单词添加到result中
for(const auto& it:recond)
result.push_back(it.second);
return result;
}
};
来源:https://blog.csdn.net/qq_43152052/article/details/99695022