49. 字母异位词分组

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的所有字母得到的一个新单词。


示例 1:

输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
输出: [["bat"],["nat","tan"],["ate","eat","tea"]]

因为要找组成一样的单词,如何判断? 最简单的,一排序,如果是同一个单词,那么就是组成一样的 比如 “eat” "tea" 排序后都为 “aet” 只要引入一个hash表,索引是排序后的单词,值为结果vector的下标,循环一遍就好了 代码如下:

> 代码


class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        map<string,int> mp;
        vector<vector<string>> res;
        string tmp;
        int dex = 0;
        for(int i = 0;i < strs.size();i++){
            tmp = strs[i];
            sort(tmp.begin(),tmp.end());
            auto iter = mp.find(tmp);
            if(iter != mp.end()){
                res[iter->second].push_back(strs[i]);
            }
            else{
                mp[tmp] = dex++;
                vector<string> vec(1,strs[i]);
                res.push_back(vec);
            }
        }
        return res;
    }
};
posted @   xiazichengxi  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示
主题色彩