码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode个人题解——#49 Group Anograms

时间:2019-03-05 15:26:02      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:匹配   映射   利用   return   cto   etc   nbsp   容器   元素   

思路:利用c++ stl的map来实现关键字匹配,

遍历strs容器类,对其中每一个string进行按字典序排序后,查找是否存在这样一个键,如不存在,存储该键,并将str[i]作为键映射的第一个元素;如存在,将str[i]添加到该键映射的vector<string>里。

最后用迭代器将map的映射即iter->second复制到题目要求返回的类型容器中。

class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        typedef map<string, vector<string>> mstring;
        mstring res;
        const int Size = strs.size();
        for(int i = 0;i < Size; i++){
            string key = strs[i];
            sort(key.begin(), key.end());
            if(res.find(key) == res.end()) res[key] = {strs[i]};
            else
                res[key].push_back(strs[i]);
        }
        vector<vector<string>> ans;
        for(mstring::iterator iter = res.begin(); iter != res.end(); iter++)
            ans.push_back(iter->second);
        return ans;
    }
};

 

leetcode个人题解——#49 Group Anograms

标签:匹配   映射   利用   return   cto   etc   nbsp   容器   元素   

原文地址:https://www.cnblogs.com/txltxl22/p/10476884.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!