Leetcode每日一题:变为数组
方法一:排序+哈希
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
vector<vector<string>> res;
unordered_map<string, vector<string>> mp;
for (auto &str : strs)
{
string s = str;
sort(s.begin(), s.end());
mp[s].emplace_back(str);
}
for (auto i = mp.begin(); i != mp.end(); i ++ )
res.emplace_back(i->second);
return res;
}
};
方法二:哈希
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
vector<vector<string>> res;
unordered_map<string, vector<string>> mp;
for (auto &str : strs)
{
vector<int> cnt(26);
string s;
for (auto &c : str) cnt[c - 'a'] ++ ;
for (auto &t : cnt) s += to_string(t);
cout << s << endl;
mp[s].emplace_back(str);
}
for (auto i = mp.begin(); i != mp.end(); i ++ )
res.emplace_back(i->second);
return res;
}
};