首页 > 其他分享 >49. 字母异位词分组

49. 字母异位词分组

时间:2023-07-19 11:22:22浏览次数:30  
标签:tmp 49 strs 异位 单词 vector 分组 mp res

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

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


示例 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;
    }
};

标签:tmp,49,strs,异位,单词,vector,分组,mp,res
From: https://www.cnblogs.com/lihaoxiang/p/17565093.html

相关文章

  • 代码随想录算法训练营第三十三天| 1049. 最后一块石头的重量 II 494. 目标和 474.一
    1049.最后一块石头的重量II思路:因为含有两个石头的相撞,所以需要把dp的目标值改成sum/2,然后取得这个目标值的最大值,然后对sum-2*target代码:1//要求:有多个石头,两两撞击,取得剩下的石头的最小值2//——》一定要碰到最后一个3//注意:4//1,x==y:两个粉碎,x<y:y=......
  • 【Javascript】数组扩展方法:根据key重新分组
    1//数组扩展:根据key重新分组2//field:按什么字段分组3Array.prototype.GroupByKey=function(field)4{5varoriginalArr=this6lettempArr=[]7letresultData=[]8for(leti=0;i<originalArr.length;i++)9{10......
  • 代码随想录算法训练营第58天 | ● 739. 每日温度 ● 496.下一个更大元素 I - 第1
     第十章 单调栈part01 ●  739. 每日温度 ●  496.下一个更大元素 I    详细布置    739. 每日温度  今天正式开始单调栈,这是单调栈一篇扫盲题目,也是经典题。 大家可以读题,思考暴力的解法,然后在看单调栈的解法。 就能感受出单调栈的巧妙 ......
  • P5494 题解
    来一发\(O(\logn)\)线性空间的解法。考虑通过只维护线段树叶子节点的虚树的方法压缩空间,考虑记录下每个节点的编号,然后通过异或完求最低位的\(1\)的方式求出LCA的深度,然后记录下LCA右端点的编号。在回收节点的时候可以释放储存右端点编号的空间,但是这里为了方便就不这样......
  • [Typescript] 149 Medium - Triangular number
    GivenanumberN,findtheNthtriangularnumber,i.e. 1+2+3+...+N/*_____________YourCodeHere_____________*/exporttypeNumberToArray<Textendsnumber,Rextends1[]=[]>=R["length"]extendsT?R:NumberToArray&......
  • Java使用Stream函数对集合进行分组
    1List<Map<String,String>>list=newArrayList<>();2Map<String,String>map1=newHashMap<>();3map1.put("name","卢俊义");4map1.put("book","水浒传"......
  • 苹果年度跳水王!M2版Mac mini降到3059元 发售价4499元
    虽然前不久苹果上线了2023款Macmini翻新机,但是M2版本售价高达3819元,远超市场价。这导致官翻机爆冷,很少有用户下单。有意思的是,在第三方电商平台,M2版Macmini的价格则一降再降,如今在拼多多百亿补贴万人团中,售价仅需3059元。对比官网原价的4499元,降价幅度达到1440元,最关键的是......
  • abc310d <dfs暴搜-分组方案数 / bitmask表示集合+dp>
    题目D-PeacefulTeams参考:https://www.cnblogs.com/legendstane/p/freee-programming-contest-2023-atcoder-beginner-contest-abc-310-solution.htmlhttps://blog.csdn.net/Muelsyse_/article/details/131747083思路方法1dfs暴搜由于数据范围极小,所以直接暴力即可......
  • P4967 黑暗打击
    题目链接:P4967黑暗打击题意对于\(n\)阶的\(\mathsf{Hilbert}\)曲线,从上往下灌水,能淹没几个单位面积?这是\(1\sim4\)阶的\(\mathsf{Hilbert}\)曲线:\(h_1\),如最左图所示,是一个缺上口的正方形,这个正方形的边长为\(1\)。从\(h_2\)开始,按照以下方法构造曲线\(h_i\):......
  • 2496
    一个由字母和数字组成的字符串的 值 定义如下:如果字符串 只 包含数字,那么值为该字符串在 10 进制下的所表示的数字。否则,值为字符串的 长度 。给你一个字符串数组 strs ,每个字符串都只由字母和数字组成,请你返回 strs 中字符串的 最大值 。 示例1:输入:strs......