前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode-49-Group-Anagrams

LeetCode-49-Group-Anagrams

作者头像
小二三不乌
发布2018-08-02 10:25:43
1830
发布2018-08-02 10:25:43
举报

LeetCode-49-Group-Anagrams

Given an array of strings, group anagrams together. For example, given: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”],

Return:

代码语言:javascript
复制
[
  ["ate", "eat","tea"],
  ["nat","tan"],
  ["bat"]
]

输入一个字符串数组,输出的是:将相同字符的字符串放在一个数组的二维数组。相同字符的处理,基本就是要对字符串排序的。然后需要考虑的就是排序好的那一个字符串怎么存的问题。用的数据结构是map,string为键,对应的值是一个set或者是一个vector,存放满足要求的string,之后再用这个初始化结果数组。

代码语言:javascript
复制
class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        unordered_map<string,multiset<string>> map_str;
        for(string s:strs){
            string t=s;
            sort(t.begin(),t.end());
            map_str[t].insert(s);
        }
        vector<vector<string>> res;
        for(auto temp:map_str){
            vector<string> vec_str_temp(temp.second.begin(),temp.second.end());
            res.push_back(vec_str_temp);
        }
        return res;
    }
};

后来发现用vector其实要好一些。只是别人这么写的,时间竟然要短一点,毕竟是用vector初始化vector?

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-01-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • LeetCode-49-Group-Anagrams
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档