本文已参与「新人创作礼」活动,一起开启掘金创作之路。
- 题号:力扣49
- 知识点:哈希,字符串
- 总结 题干:
思路:
- 1.异位词就是字母类别和个数相同的单词,但是字母的排列顺序不同。
- 2.我们可以先对所有单词排个序,如果是异位词的话,排序之后应该是一样的字符串。
- 3.然后再以排序之后的字符串为key值,以排序之前的单词为value值,存到unordered_map中
- 4.异位词由于有相同key值的,所有在unordered_map中存储在同一个key值之下。
- 5.最后再通过一个迭代器将每一个key值对应的存储的内容输出
- 6.关于emplace_back的用法可以看参考zh.cppreference.com/w/cpp/conta…
// C++
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
unordered_map <string, vector<string>> mp;
for (string str : strs){
string key = str;
sort(key.begin(), key.end());
mp[key].emplace_back(str);
}
vector<vector<string>> ret;
for (auto it = mp.begin(); it!=mp.end(); it++){
ret.emplace_back(it->second);
}
return ret;
}
};