[哈希表]leetcode49:字母异位词分组(medium)

旧城冷巷雨未停 提交于 2019-11-27 15:58:55

题目:
在这里插入图片描述
解题思路:
使用无序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;                   
    }
};
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!