字母异位词分组 LeetCode热题100

题目

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

思路

将字符串按字符升序排列后作为key,原字符串作为value存储到map上。

代码

class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        map<string,vector<string>>mp;
        map<string,vector<string>>::iterator it;
        vector<vector<string>>ans;
        mp.clear();
        ans.clear();
        for(int i=0;i<strs.size();i++){
            string str = strs[i];
            sort(str.begin(),str.end());
            mp[str].push_back(strs[i]);
        }
        for(it=mp.begin();it!=mp.end();it++){
            ans.push_back(it->second);
        }
        return ans;
    }
};

你可能感兴趣的:(面试算法,LeetCode,哈希表,leetcode,算法)