给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。
示例 1:
输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"] 输出: [["bat"],["nat","tan"],["ate","eat","tea"]]
示例 2:
输入: strs = [""] 输出: [[""]]
示例 3:
输入: strs = ["a"] 输出: [["a"]]
提示:
1 <= strs.length <= 104
0 <= strs[i].length <= 100
strs[i]
仅包含小写字母
由于同类字符串排序后的结果相同,所以先进行排序,将排序后的字符串作为key值,即可实现分类
class Solution { public: vector<vector<string>> groupAnagrams(vector<string>& strs) { vector<vector<string>> result; map<string,vector<string>> m; vector<string>::iterator it; for (it=strs.begin();it!=strs.end();++it){ string temp=*it; sort(temp.begin(),temp.end()); //将字符串排序后作为key值 m[temp].push_back(*it); } map<string,vector<string>>::iterator m_it; for (m_it=m.begin();m_it!=m.end();++m_it){ result.push_back(m_it->second); } return result; } };
标签:temp,49,strs,异位,字母,示例,力扣,vector From: https://www.cnblogs.com/coderhrz/p/17087262.html