[LeetCode 49]Group Anagrams(利用数据结构和排序简化问题)
2017-03-30 09:31
471 查看
问题描述
49 Group AnagramsGiven an array of strings, group anagrams together.
For example, given: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”],
Return:
[
[“ate”, “eat”,”tea”],
[“nat”,”tan”],
[“bat”]
]
Note: All inputs will be in lower-case.
问题来源
问题简述
利用相同字母组合的规则,将字符串分组算法描述
利用map,以字母组合的字典序(string)作为键,对应同组字符串集合(multiset)作为值。统计过程中将每个字符串排序获得键,然后在键对应的muleiset中插入原字符串即可。最后,遍历map,访问对应的multiset即可得到各组。代码示例
class Solution { public: vector<vector<string>> groupAnagrams(vector<string>& strs) { unordered_map<string,multiset<string>> mp; for(int i=0;i<strs.size();i++) { string t=strs[i]; sort(t.begin(),t.end()); mp[t].insert(strs[i]); } vector<vector<string>> anagrams; for (auto m : mp) { vector<string> anagram(m.second.begin(), m.second.end()); anagrams.push_back(anagram); } return anagrams; } };
相关文章推荐
- leetcode-49 Group Anagrams 同位词字典序排序
- LeetCode 49 - Group Anagrams
- Leetcode 49 Group Anagrams
- LeetCode 49 Group_Anagrams Java实现
- [python]leetcode(49). Group Anagrams
- Leetcode 49: Group Anagrams
- 【LeetCode71-80】71目录简化72DP问题73巧妙利用0位置76通用substr问题精妙模板79DFS+回溯
- LeetCode - 49 - Group Anagrams
- LeetCode-49:Group Anagrams
- Leetcode 49 Group Anagrams
- LeetCode-49-Group Anagrams(哈希)-Medium
- LeetCode 49 Group Anagrams(字符串分组)
- leetcode——49——Group Anagrams
- LeetCode-49-Group Anagrams list_to_string、string list
- LeetCode(49)Group Anagrams
- 【leetcode】【49】Group Anagrams
- leetcode(49):Group Anagrams
- leetcode49-Group Anagrams(同构词(相同字母组成的单词)分类)
- 【LeetCode】C# 49、Group Anagrams
- LeetCode49_Group Anagrams