LeetCode 面试题 10.02. 变位词组[map] HERODING的LeetCode之路
Posted HERODING23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 面试题 10.02. 变位词组[map] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。
解题思路:
看似比较复杂的题目,其实换一个思路就很简单,遍历所有的字符串,然后sort,这样只要是变位词,sort 后都相同,统计他们的下标,最后根据他们的下标放入同一个vector中,代码如下:
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
unordered_map<string, vector<int>> mp;
// 排序 + 存储下标
for(int i = 0; i < strs.size(); i ++) {
string s = strs[i];
sort(s.begin(), s.end());
mp[s].push_back(i);
}
vector<vector<string>> res;
// 统计
for(auto& [a, b] : mp) {
vector<string> ans;
for(int& i : b) {
ans.push_back(strs[i]);
}
res.push_back(ans);
}
return res;
}
};
以上是关于LeetCode 面试题 10.02. 变位词组[map] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章