Leetcode 49. 字母异位词分组 中等

题目

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

字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。

示例 1:

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

思路:

异位词就是具有相同字符的单词。

我们可以将str排序后作为key,保存str

 

复制代码
class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        unordered_map<string,vector<string>> m;
        vector<vector<string>> ret;
        for(auto& str:strs){
            string key=str;
            sort(key.begin(),key.end());
            m[key].push_back(str);
        }
        for(auto it=m.begin();it!=m.end();it++){
            ret.push_back(it->second);
        }
        return ret;
    }
};
复制代码

 

posted @   鸭子船长  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2016-03-16 mediaplayer与surfaceView,无法播放问题
点击右上角即可分享
微信分享提示