LeetCode OJ:Group Anagrams(同字符字符群)

时间:2023-03-09 18:08:51
LeetCode OJ:Group Anagrams(同字符字符群)

Given an array of strings, group anagrams together.

For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"]
Return:

[
["ate", "eat","tea"],
["nat","tan"],
["bat"]
]

找出同字母的字符群,比较简单的方法就是用map实现,将每个字符排下序作为key就可以了,代码如下:

 class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
vector<vector<string>> ret;
map<string, vector<string>> res;
string tmp;
for(int i = ; i < strs.size(); ++i){
tmp = strs[i]; //这里是关键
sort(tmp.begin(), tmp.end());
res[tmp].push_back(strs[i]);
}
vector<string> tmpVec;
for(typename map<string, vector<string>>::iterator it = res.begin(); it != res.end(); ++it){
sort(it->second.begin(), it->second.end());
}
for(typename map<string, vector<string>>::iterator it = res.begin(); it != res.end(); ++it){
tmpVec.clear();
if(it->second.size() >= )
for(int i = ; i < it->second.size(); i++){
tmpVec.push_back(it->second[i]);
}
ret.push_back(tmpVec);
}
return ret;
}
};

还有很多种实现方法实际上,以后再来一一实现