leetcode 49. 字母异位词分组

思路

在原始信息和哈希映射使用的实际键值之间建立映射关系,先将单词字母按照字母表的顺序进行排列,若排列的结果相同,则为字母异位词

代码

class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        unordered_map<string,vector<string>>hashmap;
        for(auto s:strs)
        {
            string tmp = s;
            sort(tmp.begin(),tmp.end());//将单词按照字母顺序排序
            hashmap[tmp].push_back(s);//保存每个字母顺序中的单词  比如 abc 的有哪些单词
        }
        int len = hashmap.size();
        vector<vector<string>> res(len);
        int index  = 0 ;
        for(auto i:hashmap)
        {
            res[index] = i.second;//得到每个单词顺序的单词
            ++index;
        }
        return res;
    }
};

 

posted @ 2021-09-26 16:15  A-inspire  Views(17)  Comments(0Edit  收藏  举报