class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
// 建立一个无需map,内存储具有相同字母的vector数组
unordered_map<string,vector<string>> mp;
for(int i =0 ;i<strs.size();i++){
string key = strs[i];
// 对字符串排序,使得具有相同字母的单词,具有相同的键值key
sort(key.begin(),key.end());
// 将其加入到map中 ,将未排序的单词作为值加入到map中
mp[key].emplace_back(strs[i]);
}
// 建立结果数组,存储排序后的结果
vector<vector<string>> result;
for(auto it=mp.begin();it!=mp.end();it++){
// 将排序后的字母加入到结果集中
result.emplace_back(it->second);
}
return result;
}
};
LeetCode;49.字母异位词分组;标签:排序
最新推荐文章于 2024-09-11 16:15:28 发布
该代码示例展示了一个C++函数,用于将输入的字符串数组按照字母异位词(anagram)关系进行分组。函数首先对每个字符串进行排序,然后使用unordered_map存储排序后的键值及其对应的原字符串集合。最后,将map中的所有值(即字母异位词组)添加到结果数组中返回。
摘要由CSDN通过智能技术生成