题意
将
n
个单词按照字母组成分组,字母组成相同的为一组
思路
使用hash将字母组成相同的放在一起,验证字母组成的时候直接将单词中的字符排序即可,最后遍历
hash
表进行结果的添加.
代码
class Solution {
public:
map<string, vector<string>>mp;
vector<vector<string>> groupAnagrams(
vector<string>& strs) {
vector<vector<string> >ans;
size_t len = strs.size();
for(
int i =
0; i < len; i++){
string s = strs[i];
sort(s.begin(), s.end());
mp[s].push_back(strs[i]);
}
for(
auto it : mp){
ans.push_back(mp[it.first]);
}
return ans;
}
};