Group Anagrams

来源:互联网 发布:中国房地产数据报告 编辑:程序博客网 时间:2024/05/14 09:32

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"]]

Note:

  1. For the return value, each inner list's elements must follow the lexicographic order.
  2. All inputs will be in lower-case.


这道题目让我直接意识到,STL在处理字符串型数组时,有多么方便快捷,这里涉及到几个数据结构,有map,unordered_map,multiset等,后续想先仔细学一下stl中这些数据结构的使用方法,然后再刷题。

class Solution {public:    vector<vector<string>> groupAnagrams(vector<string>& strs) {        unordered_map<string,multiset<string>>mp;        for(auto s:strs){            string t = s;            sort(t.begin(),t.end());            mp[t].insert(s);        }        vector<vector<string>> Anagrams;        for(auto m:mp){            vector<string>anagram(m.second.begin(),m.second.end());            Anagrams.push_back(anagram);        }        return Anagrams;    }};


0 0