1.代码部分
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs)
{
std::map<std::string,std::vector<std::string>> anagram;
std::vector<std::vector<std::string>> result;//储存最终结果
for(int i=0;i<strs.size();i++)
{
std::string str=strs[i];
std::sort(str.begin(),str.end());//对str内部进行排序
if(anagram.find(str)==anagram.end())//说明无法在anagram中找到str
{
std::vector<std::string> item;//设置一个空的字符串向量
anagram[str]=item;//以排序后的strs[i]作为key新建一个关键字
}
anagram[str].push_back(strs[i]);
//将strs[i]放入anagram对应的str中
}
std::map<std::string,std::vector<std::string>>::iterator it;
for(it=anagram.begin();it!=anagram.end();it++)
{
result.push_back((*it).second);
}
return result;
}
};
2.对应代码讲解
依然是用ppt做的,有些首字母大写问题望见谅
第二张ppt对应的过程如下图