leetcode 49. Group Anagrams

来源:互联网 发布:淘宝上如何申请售后 编辑:程序博客网 时间:2024/05/01 21:16

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.

  1. All inputs will be in lower-case.
class Solution {public:vector<vector<string>> groupAnagrams(vector<string>& strs) {map<map<char, int>, set<string>>gr;map<string, int>strscount;for (int i = 0; i < strs.size(); i++){string s = strs[i]; map<char, int>count;strscount[s]++;for (int j = 0; j < s.length(); j++)count[s[j]]++;gr[count].insert(strs[i]);}vector<vector<string>>re;for (map<map<char, int>, set<string>>::iterator it = gr.begin(); it != gr.end(); it++){vector<string>ss;for (set<string> ::iterator it1 = it->second.begin(); it1 != it->second.end(); it1++){for (int i = 0; i < strscount[*it1]; i++)ss.push_back(*it1);}re.push_back(ss);}return re;}};

accepted

0 0