首页 > 代码库 > 49. Group Anagrams
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"] ]Note: All inputs will be in lower-case.
很明显,这个题目要求将字母相同的单词归为一组。
判断字符串中字符相同一般有两种方法:
- 使用容器map<char, int>
- 排序,然后使用=运算符判断是否相等
具体到本题中,可以将字符串排序后的结果作为key,vector<string>作为value,使用map<key, vector<string>>,每个key对应的vector<string>就是同一组单词。
class Solution { public: vector<vector<string>> groupAnagrams(vector<string>& strs) { vector<vector<string>> res; if (strs.empty()) return res; unordered_map<string, vector<string>> container; for (auto str : strs) { string tmp(str); std::sort(tmp.begin(), tmp.end()); (container[tmp]).push_back(str); } for (auto ele : container) res.push_back(ele.second); return res; } };
49. Group Anagrams
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。