LeetCode-49-Group-Anagrams

LeetCode-49-Group-Anagrams

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

Return:

[
  ["ate", "eat","tea"],
  ["nat","tan"],
  ["bat"]
]

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

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?

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏WD学习记录

牛客网 从上往下打印二叉树

871
来自专栏java初学

hashMap原理(java8)

37017
来自专栏Java进阶之路

java面试热点:集合框架(二)

1920
来自专栏大数据钻研

Java集合类操作优化经验总结

本文首先针对 Java 集合接口进行了一些介绍,并对这些接口的实现类进行详细描述,包括 LinkedList、ArrayList、Vector、Stack、Ha...

38717
来自专栏闵开慧

HashMap与HashTable区别

1 HashMap不是线程安全的 hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复...

2686
来自专栏自学笔记

Data Structure堆Tree并查集图论

堆这种数据结构的应用很广泛,比较常用的就是优先队列。普通的队列就是先进先出,后进后出。优先队列就不太一样,出队顺序和入队顺序没有关系,只和这个队列的优先级相关,...

854
来自专栏小勇DW3

ArrayList在foreach删除倒数第二个元素不抛并发修改异常的问题

平时我们使用ArrayList比较多,但是我们是否知道ArrayList在进行foreach的时候不能直接通过list的add或者move方法进行删除呢,

1903
来自专栏皮皮之路

【JDK1.8】JDK1.8集合源码阅读——IdentityHashMap

3809
来自专栏恰同学骚年

剑指Offer面试题:12.在O(1)时间删除链表结点

  在单向链表中删除一个结点,最常规的做法无疑是从链表的头结点开始,顺序遍历查找要删除的结点,并在链表中删除该结点。这种思路由于需要顺序查找,时间复杂度自然就是...

701
来自专栏码云1024

List Set Map比较

3464

扫码关注云+社区

领取腾讯云代金券