题目:
Given an array of strings, group anagrams together.
For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"],
Return:
[ ["ate", "eat","tea"], ["nat","tan"], ["bat"] ]
代码:
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
vector<vector<string>> result;
if(strs.empty())
return result;
map<string,vector<string>> m;
for(int i=0;i<strs.size();i++){
string temp=strs[i];
sort(temp.begin(),temp.end());
m[temp].push_back(strs[i]);
}
for(map<string,vector<string>>::iterator iter=m.begin();iter!=m.end();iter++)
result.push_back(iter->second);
return result;
}
};笔记:
- 理解熟悉map的first,second的用法
- string也是一种容器,可以按照字母表顺序sort
本文介绍了一种高效的算法来解决字谜分组问题。通过使用C++编程语言,我们展示了如何将一组字符串按字谜关系进行分组,并提供了一个具体的代码实现案例。该算法利用了排序和哈希映射的方法,确保了即使在大量输入数据的情况下也能快速准确地完成分组。
&spm=1001.2101.3001.5002&articleId=77584660&d=1&t=3&u=7ffe3f5858234c9999c4f7f27ab56e4c)
608

被折叠的 条评论
为什么被折叠?



