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

49. 字母异位词分组

时间:2022-11-10 13:56:51浏览次数:40  
标签:map 49 strs 异位 字母 分组 key let

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

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

示例 1:

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

示例 2:

输入: strs = [""]
输出: [[""]]

示例 3:

输入: strs = ["a"]
输出: [["a"]]

提示:

  • 1 <= strs.length <= 104
  • 0 <= strs[i].length <= 100
  • strs[i] 仅包含小写字母

方法一:排序

思路:由于互为异位词的两个字符串包括的字母相同,因此对两个字符串分别进行排序之后得到的字符串一定是相同的,故可以将排序之后的字符串作为哈希表的键

时间复杂度:O(nklog k)

空间复杂度:O(nk)

 1 /**
 2  * @param {string[]} strs
 3  * @return {string[][]}
 4  */
 5 var groupAnagrams = function(strs) {
 6 const map = new Map();
 7 for(let str of strs){
 8     let array = Array.from(str);
 9     array.sort();
10     let key = array.toString();
11     let list =map.get(key)?map.get(key):new Array();
12     list.push(str);
13     map.set(key,list);
14 }
15 return Array.from(map.values())
16 };

标签:map,49,strs,异位,字母,分组,key,let
From: https://www.cnblogs.com/icyyyy/p/16876797.html

相关文章

  • [Bug0049]SwitchHosts报错:没有写入 Hosts 文件的权限
    问题SwitchHosts报错:没有写入Hosts文件的权限解决方案1、打开如下目录C:\Windows\System32\drivers\etc2、右键hosts文件->点击安全->点击编辑->找到User......
  • 每日一题-区间分组
    区间分组 sort(a.begin(),a.end()); priority_queue<int,vector<int>,greater<int>>q; for(inti=0;i<n;++i){ if(q.empty()orq.top()>=a[i].fir......
  • 438.找到字符串中所有字母异位词
    给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词 指由相同字母重排列形成的字符串(包括相同的字......
  • P1493 分梨子
    \(\large\texttt{Link}\)以前写过本题,现在写篇题解记录一下。\(c_1(a_i-a_0)+c_2(b_i-b_0)\leqslantc_3\iffc_1a_i+c_2b_i\leqslantc_3+c_1a_0+c_2b_0\)左边是个常......
  • HDU 5496 Beauty of Sequence
    ProblemDescriptionSequenceisbeautifulandthebeautyofanintegersequenceisdefinedasfollows:removesallbutthefirstelementfromeveryconse......
  • 349. 两个数组的交集
    349.两个数组的交集给定两个数组 nums1 和 nums2,返回它们的交集 。输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。示例1:输入:nums1......
  • 代码随想录day43 | 1049. 最后一块石头的重量 II 494. 目标和 474. 一和零
    1049.最后一块石头的重量II题目|文章思路求剩余石头的最小重量。如果两个石头最接近总重量的平均值,那么剩余石头为最小重量。所以先求出石头的总重量的一半。1.数......
  • AI云边端EasyCVR平台新功能解析:支持为角色选择多级分组
    EasyCVR平台可支持多类型设备、多协议方式接入,具体包括:国标GB28181协议、RTMP、RTSP/Onvif、海康Ehome,以及海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石SDK等,可覆盖......
  • AcWing 3583 整数分组(01背包 + 双指针)
    原题链接本题是比较明显的01背包,选或者不选,中间可以用双指针找到最后可以选到的区间长度,那么如果选当前最后一个区间的话最后就要求这个区间前面的长度要最大状态表示:f[......
  • MybatisPlus Lambda表达式 聚合查询 分组查询 COUNT SUM AVG MIN MAX GroupBy
    一、序言众所周知,MybatisPlus在处理单表DAO操作时非常的方便。在处理多表连接连接查询也有优雅的解决方案。今天分享MybatisPlus基于Lambda表达式优雅实现聚合分组查询。......