题目:
解答:
设置一个map,将每个字符重排后,与序号存入一个map<int, list>的字典中,然后遍历该字典的序号即可。
代码:
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
map<string, list<int>> table;
int len = strs.size();
for(int i = 0;i < len; ++i){
string tmp = strs[i];
sort(tmp.begin(), tmp.end());
table[tmp].push_back(i);
}
vector<vector<string>> result;
for(map<string, list<int>>::iterator it = table.begin(); it != table.end(); ++it){
vector<string> vec;
for(list<int>::iterator it2 = (*it).second.begin(); it2 != (*it).second.end(); ++it2){
vec.push_back(strs[(*it2)]);
}
result.push_back(vec);
}
return result;
}
};
更新会同步在我的网站更新(https://zergzerg.cn/notes/webnotes/leetcode/index.html)