【中等】49. 字母异位词分组

2023-11-05

原题链接:https://leetcode.cn/problems/group-anagrams

49. 字母异位词分组

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

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

示例 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] 仅包含小写字母

golang

func groupAnagrams(strs []string) [][]string {
    mp := map[[26]int][]string{}
    for _, str := range strs {
        cnt := [26]int{}
        for _, b := range str {
            cnt[b-'a']++
        }
        mp[cnt] = append(mp[cnt], str)
    }
    ans := make([][]string, 0, len(mp))
    for _, v := range mp {
        ans = append(ans, v)
    }
    return ans
}

c++

class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        unordered_map<string, vector<string>> mp;
        for (string& str: strs) {
            string key = str;
            sort(key.begin(), key.end());
            mp[key].emplace_back(str);
        }
        vector<vector<string>> ans;
        for (auto it = mp.begin(); it != mp.end(); ++it) {
            ans.emplace_back(it->second);
        }
        return ans;
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【中等】49. 字母异位词分组 的相关文章

  • 【LeetCode:1423. 可获得的最大点数 | 滑动窗口】

    算法题 算法刷题专栏 面试必备算法 面试高频算法 越难的东西 越要努力坚持 因为它具有很高的价值 算法就是这样 作者简介 硕风和炜 CSDN Java领域新星创作者 保研 国家奖学金 高中学习JAVA 大学完善JAVA开发技术栈 面试刷题
  • 《LeetCode力扣练习》代码随想录——哈希表(四数之和---Java)

    LeetCode力扣练习 代码随想录 哈希表 四数之和 Java 刷题思路来源于 代码随想录 18 四数之和 排序双指针 class Solution public List
  • leetcode 每日一题

    https leetcode cn problems invert binary tree submissions 这个题目我们的思路其实很简单 遇到空就是得返回空指针 因为要进行交换 但是这里有个小细节 就是我们的把他的左右节点进行保存
  • LeetCode-数组-重叠、合并、覆盖问题-中等难度

    435 无重叠区间 我认为区间类的题型 大多数考验的是思维能力 以及编码能力 该类题型本身并无什么算法可言 主要是思维逻辑 比如本题实际上你只需要能够总结出重叠与不重叠的含义 再加上一点编码技巧 便可完成 解题思路 正如前面所说 那么解题的
  • 200.岛屿数量(bfs写法)

    宽搜的正常思路 只不过每次加上计算岛屿数量cnt即可 class Solution public int numIslands char grid int n grid length int m grid 0 length int dx n
  • LeetCode326. Power of Three

    文章目录 一 题目 二 题解 一 题目 Given an integer n return true if it is a power of three Otherwise return false An integer n is a po
  • 【LeetCode:162. 寻找峰值 | 二分】

    算法题 算法刷题专栏 面试必备算法 面试高频算法 越难的东西 越要努力坚持 因为它具有很高的价值 算法就是这样 作者简介 硕风和炜 CSDN Java领域新星创作者 保研 国家奖学金 高中学习JAVA 大学完善JAVA开发技术栈 面试刷题
  • 【贪心算法】【中位贪心】LeetCode:100123.执行操作使频率分数最大

    涉及知识点 双指针 C 算法 前缀和 前缀乘积 前缀异或的原理 源码及测试用例 包括课程视频 贪心算法 题目 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 你可以对数组执行 至多 k 次操作 从数组中选择一个下标 i 将 n
  • 《LeetCode力扣练习》代码随想录——双指针法(翻转字符串里的单词---Java)

    LeetCode力扣练习 代码随想录 双指针法 翻转字符串里的单词 Java 刷题思路来源于 代码随想录 151 反转字符串中的单词 双指针 class Solution public String reverseWords String
  • 力扣面试题 16.19. 水域大小(java DFS解法)

    Problem 面试题 16 19 水域大小 文章目录 题目描述 思路 解题方法 复杂度 Code 题目描述 思路 该问题可以归纳为一类 遍历二维矩阵 的题目 此类中的一部分题目可以利用 DFS 来解决 具体到本题目 该题目可以的写法大体不
  • 《LeetCode力扣练习》代码随想录——双指针法(反转链表---Java)

    LeetCode力扣练习 代码随想录 双指针法 反转链表 Java 刷题思路来源于 代码随想录 206 反转链表 双指针 Definition for singly linked list public class ListNode int
  • LeetCode:162. 寻找峰值、1901. 寻找峰值 II(二分 C++)

    目录 162 寻找峰值 题目描述 实现代码与解析 二分 原理思路 1901 寻找峰值 II 题目描述 实现代码与解析 二分 原理思路 162 寻找峰值 题目描述 峰值元素是指其值严格大于左右相邻值的元素 给你一个整数数组 nums 找到峰值
  • LeetCode经典150题.274.H指数

    题目 274 H 指数 给你一个整数数组 citations 其中 citations i 表示研究者的第 i 篇论文被引用的次数 计算并返回该研究者的 h 指数 根据维基百科上 h 指数的定义 h 代表 高引用次数 一名科研人员的 h 指
  • Leetcode 45 跳跃游戏 II

    题意理解 给定一个长度为 n 的 0 索引 整数数组 nums 初始位置为 nums 0 每个元素 nums i 表示从索引 i 向前跳转的最大长度 还是从初始坐标i 0的位置到达最后一个元素 但是问题不是能不能跳到 而是 最少几步能跳到最
  • LeetCode 2397. 被列覆盖的最多行数,状态压缩优化回溯法

    一 题目 1 题目描述 给你一个下标从 0 开始 大小为 m x n 的二进制矩阵 matrix 另给你一个整数 numSelect 表示你必须从 matrix 中选择的 不同 列的数量 如果一行中所有的 1 都被你选中的列所覆盖 则认为这
  • 【每日一题】2397. 被列覆盖的最多行数-2024.1.4

    题目 2397 被列覆盖的最多行数 给你一个下标从 0 开始 大小为 m x n 的二进制矩阵 matrix 另给你一个整数 numSelect 表示你必须从 matrix 中选择的 不同 列的数量 如果一行中所有的 1 都被你选中的列所覆
  • 二分查找(二)

    点名 点名 某班级 n 位同学的学号为 0 n 1 点名结果记录于升序数组 records 假定仅有一位同学缺席 请返回他的学号 二分法思路 判断数组的值和对应的下标是否相等 将数组分为两个区间 不相等区间的最左端 就是第缺席的同学的学号
  • 【Leetcode】349. 两个数组的交集

    Leetcode 349 两个数组的交集 题目链接 代码 题目链接 Leetcode 349 两个数组的交集 代码 func intersection nums1 int nums2 int int nums1和nums切片的hash ha
  • 扬帆证券:跨年期控股权易主活跃 多元化助推因素值得关注

    岁末年初 A股实控权改变趋向生动 2023年底 天汽模 中天精装 电工合金 三湘形象等公司相继公告控制权改变事宜 2024年以来 ST大集等公司打开实控人改变之路 宝莫股份等公司的易主在年初快速落定 这些易主运作中 部分案例超出商场预期 以
  • 扬帆证券:成功投资的第一步:首次购买股票需要注意什么?

    关于第一次入市买股票的出资者来说 需求留意以下几点 1 股票的买卖规则 买卖时刻 早盘集合竞价9 15 9 25 尾盘集合竞价14 57 15 00 其中在9 15 9 20之间 出资者能够申报 也能够吊销申报 9 20 9 25之间 出资

随机推荐

  • 微信公众号实现简易的物联网控制(一)

    这篇主要说说如何通过微信公众号来查看室内传感器数据 至于硬件部分和物联网平台以后再详细说明 准备工作 1 申请微信公众号 2 搭建云服务器 首先说明一下整体流程 用户发送相应的指令到公众号后台 服务器根据指令的内容调用OneNET的API获
  • 深入理解JVM(四)JVM的垃圾回收机制

    文章目录 1 什么是垃圾回收机制 2 Java中的引用类型 3 如何判断对象是否可以被回收 4 方法区的垃圾收集 5 垃圾收集算法 5 1 标记 清除 Mark Sweep 算法 5 2 标记整理 Mark Compact 算法 5 3 复
  • 谭浩强C++课后习题16——矩阵对角线元素之和

    谭浩强C 课后习题16 矩阵对角线元素之和 题目描述 求一个n n矩阵对角线元素之和 算法思路 定义一个动态二维数组 定义方法 定义一个指向指针的指针 令其指向每一行的首地址 循环n次 定义n个一维数组 循环n次 对角线之和即为每一行num
  • Dynamics 365发送邮件

    在Dynamics 365 CRM 开发中 发送邮件除了CRM自带的邮件以外 还可以使用代码发送邮件 大大丰富了邮件的内容 满足客户不同的需求 Entity email new Entity email 邮件接收人 类型为 EntityCo
  • 梳理总结线程池知识(内含常用线程池选型技巧及其API分类讲解)

    核心 救急线程概念 核心线程 救急线程 二者区别 原始线程池的构造方法 常用线程池及其适用场景 FixedThreadPool CachedThreadPool SingleThreadExecutor ScheduledExecutor
  • Opecncv-python使用踩坑篇(一)

    import cv2时 RuntimeError module compiled against API version 0xb but this version of numpy is 0xaTraceback most recent c
  • 【Proteus仿真】DAC0832+51单片机汇编实现三角波输出

    Proteus仿真 DAC0832 51单片机汇编实现三角波输出 Proteus仿真 汇编代码 asm 利用DAC0832产生三角波 程序如下 本程序中产生的电压的最大幅度受DAC0832的基准电压限制 产生的的三角波周期受累加器A的控制
  • 噪声库NOISEX-92下载并用python转为wav

    0 直接一键获取 可以进我的CSDN下载 https download csdn net download weixin 44908427 85833708 也可以留言发邮箱 1 数据下载 官方下载链接 NOISEX 92 下载下来后是ma
  • Python本地安装的包(setup.py / pip install -e)复制后需要重新安装

    之前运行的AE代码 然后为了改charnet复制了一份 然后就发现在新复制的目录里面程序打断点也会跳过 而且在aetextspotter py里面增加一些输出也没变化 这是因为aetextspotter py所在的目录mmdet是通过pyt
  • IT项目管理作业八

    RUNNING CASE 第一题 90 的员工在系统推出后的两周内登录了该系统 90 的员工在系统推出后的四周内完成了有关该系统的培训 该系统帮助确定了25 的员工如何改善健康状况 25 的员工已将改善健康的目标纳入系统 并通过报名参加项目
  • C#和Java之间的语法和特性差异

    C 和Java是两种常见的面向对象编程语言 虽然它们在许多方面都非常相似 但仍然有一些不同之处 下面是它们之间的主要差异以及相应的功能列表 语法差异 C 使用分号作为语句结束符 而Java使用分号和花括号 C 使用 using 关键字导入命
  • Codeforces Round #776 (Div. 3)

    菜鸡在这里做做笔记 各位进来的大佬我先 orz 了 B include
  • App的启动过程(10)surfaceflinger对数据合成,送显

    下面就是SurfaceFlinger执行实际的数据合成 然后刷新到屏幕上 voidSurfaceFlinger onMessageReceived int32 t what switch what case MessageQueue INV
  • Java异常体系

    Thorwable类 表示可抛出 是所有异常和错误的超类 两个直接子类为Error和Exception 分别表示错误和异常 Error是程序无法处理的错误 它是由JVM产生和抛出的 这些异常发生时 Java虚拟机 JVM 一般会选择线程终止
  • C++函数嵌套定义

    函数的嵌套定义 int AddThreeInt int iFirst int iSecond int iThree struct AddTwoInt int operator int iOne int iTwo return iOne iT
  • java方法重写override_子类重写父类方法

    1 重写 子类重写父类的方法 2 格式要求 1 必须相同的 方法名 参数列表 2 可以不同的 有限制条件 尽量一致 返回值 修饰符 package com msb import javax sound midi Soundbank Auth
  • sqli-labs/Less-23

    这一关又变回了get请求了 而且他的欢迎界面提示我们要用id为参数名称 试一试id 1 and 1 2 正确输出 所以属于字符型 然后在输入id 1 出现报错 报错信息如下 说明此次的注入点的结构为单引号注入 然后我怕出什么幺蛾子 所以说有
  • Python爬虫学习笔记(四)————XPath解析

    目录 0 xpath最新下载地址和安装教程 1 xpath安装 2 xpath基本使用 3 xpath基本语法 4 实例 1 xpath解析本地文件 2 xpath解析服务器响应的数据 获取百度网站的 百度一下 四个字 获取站长素材网站情侣
  • Python机器学习项目:基于数据挖掘的抖音商用广告视频识别

    基于数据挖掘的抖音商用广告视频识别 Commercial Vedio Recognition Project 基于数据挖掘的tik tok商用广告视频识别 GitHub Notebook From Kaggle Notebook From
  • 【中等】49. 字母异位词分组

    原题链接 https leetcode cn problems group anagrams 49 字母异位词分组 给你一个字符串数组 请你将 字母异位词 组合在一起 可以按任意顺序返回结果列表 字母异位词 是由重新排列源单词的所有字母得到