目录
题目描述:
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
示例:
输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]
说明:
- 所有输入均为小写字母。
- 不考虑答案输出的顺序。
解法:
class Solution {public: vector> groupAnagrams(vector & strs) { unordered_map > mp; int sz = strs.size(); for(int i = 0; i < sz; i++){ string str = strs[i]; sort(str.begin(), str.end()); if(mp.find(str) == mp.end()){ mp[str] = {strs[i]}; }else{ mp[str].push_back(strs[i]); } } vector > res; for(auto it : mp){ res.push_back(it.second); } return res; }};