难度:中等。
我的思路:将每个string转换为字典序,然后与已有的字典序比较,一样就加入vector,不一样就创建新的vector。
正确解法:
class Solution {
string getDicSeq(string a){
string res = a;
sort(res.begin(), res.end());
return res;
}
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
int n = strs.size();
vector<vector<string>> result;
vector<string> dic_list;
for(int i = 0; i < n ; i++){
string dic = getDicSeq(strs[i]);
int j = 0, flag = 0;
for(; j < dic_list.size(); j++){
if(dic_list[j] == dic){
flag = 1;
break;
}
}
if(flag){
result[j].emplace_back(strs[i]);
}
else{
vector<string> temp;
temp.emplace_back(strs[i]);
result.emplace_back(temp);
dic_list.emplace_back(dic);
}
}
return result;
}
};
结果:
就是比较慢嘛