提出需求:
用哈希实现:
#include<iostream>
using namespace std;
#include<vector>
#include<unordered_map>
#include<string>
#include<algorithm>
class Solution
{
public:
vector<vector<string>>groupAnagrams(vector<string>& strs)
{
unordered_map<string, vector<string>>mp;//创建一个哈希表 键是字符串自身 值是一个存储字符串的容器
for (string& str : strs)
{
string key = str;
sort(key.begin(), key.end());//将字符串按字典序排列
mp[key].emplace_back(str);//c存储字符串到容器中
}
vector<vector<string>>ans;
for(auto it=mp.begin();it!=mp.end();it++)//遍历哈希表
{
ans.emplace_back(it->second);//保存含有相同字母的字符串
}
return ans;
}
};
int main()
{
system("pause");
return 0;
}