代码编织梦想

题目

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

**注意:**若两个字符串中每个字符出现的次数都相同,则称它们互为变位词。

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

注意:本题与主站 49 题相同: https://leetcode-cn.com/problems/group-anagrams/

Related Topics

  • 数组
  • 哈希表
  • 字符串
  • 排序

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/sfvd7V
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路

将每个str 转为 char 数组,判断 map 是否存在这个 key。存在,value (List)中添加这个字符串。不存在,新建一个空的 List 集合。

题解

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        Map<String,List<String>> map = new HashMap<String,List<String>>();
        for (String str : strs) {
            char[] array = str.toCharArray();
            Arrays.sort(array);
            String key = new String(array);
            List<String> list = map.getOrDefault(key,new ArrayList<String>());
            list.add(str);
            map.put(key,list);
        }
        return new ArrayList<List<String>>(map.values());
    }
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_52476654/article/details/126245677

剑指 Offer 53 - I. 在排序数组中查找数字 I / 剑指 Offer 42. 连续子数组的最大和(线段树基础)/152. 乘积最大子数组 / 面试题 10.02. 变位词组-爱代码爱编程

剑指 Offer 53 - I. 在排序数组中查找数字 I 2021.7.16 每日一题 题目描述 统计一个数字在排序数组中出现的次数。 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 示例 2: 输入: nums = [5,7,7,8,8,10], target = 6 输出: 0 来源

剑指 Offer II 33. 变位词组-爱代码爱编程

题目 链接 剑指 Offer II 33. 变位词组描述 给定一个字符串数组 strs ,将 变位词 组合在一起。 可以按任意顺序返回结果列表。 注意:若两个字符串中每个字符出现的次数都相同,则称它们互为变位词。 输入与输出 输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出: [

LeetCode —— 剑指 Offer II 033. 变位词组-爱代码爱编程

文章目录 题目描述题目分析测试案例代码展示性能展示题目来源 题目描述 给定一个字符串数组 strs ,将 变位词 组合在一起。 可以按任意顺序返回结果列表。 注意:若两个字符串中每个字符出现的次数都相同,则称它们互为变位词。 题目分析 对于一组字符串vector<string> strs中进行变位词分类这个问题,我们可以拆分

[剑指offer专项突击版-Java解法]剑指 Offer II 033. 变位词组-爱代码爱编程

剑指 Offer II 033. 变位词组 题目描述 给定一个字符串数组 strs ,将 变位词 组合在一起。 可以按任意顺序返回结果列表。 **注意:**若两个字符串中每个字符出现的次数都相同,则称它们互为变位词。 示例 1: 输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"] 输出: [

剑指 Offer II 033. 变位词组-爱代码爱编程

给定一个字符串数组 strs ,将 变位词 组合在一起。 可以按任意顺序返回结果列表。 注意:若两个字符串中每个字符出现的次数都相同,则称它们互为变位词。 示例 1: 输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"] 输出: [["bat"],["nat","tan"],["ate","eat"

剑指 Offer II 033. 变位词组&剑指 Offer II 035. 最小时间差 -做题总结和心得(剑指offer进阶-哈希表部分)-爱代码爱编程

剑指 Offer II 033. 变位词组 该题解法是hash+sort,答案是评论区大佬写的。 /* 大体思路:创建一个哈希表 再将每个字符串变成字符数组 排序后若哈希表里不存在排序后的字符串,则创建索引, 然后将原字符串放进对应索引的数组里 */ class Solution { public List<List<Stri

Leetcode-剑指 Offer II 033. 变位词组-爱代码爱编程

链接 剑指 Offer II 033. 变位词组 题目 给定一个字符串数组 strs ,将 变位词 组合在一起。 可以按任意顺序返回结果列表。 注意:若两个字符串中每个字符出现的次数都相同,则称它们互为变位词。 示例 示例 1: 输入: strs = ["eat", "tea", "tan", "ate", "nat", "b

剑指 Offer II 033. 变位词组(中等 哈希表 字符串 排序)-爱代码爱编程

剑指 Offer II 033. 变位词组 给定一个字符串数组 strs ,将 变位词 组合在一起。 可以按任意顺序返回结果列表。 注意:若两个字符串中每个字符出现的次数都相同,则称它们互为变位词。 示例 1: 输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 输出: [[“bat”],[“

LeetCode 剑指 Offer II 033. 变位词组-爱代码爱编程

LeetCode 剑指 Offer II 033. 变位词组 文章目录 LeetCode 剑指 Offer II 033. 变位词组题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目 题目描述 给定一个字符串数组 strs ,将 变位词 组合在一起。 可以按任意顺序返回结果列表。 注意:若两

剑指 offer(专项突击版)- 剑指 offer ii 033. 变位词组 (20220725)_bupt-wt的博客-爱代码爱编程

给定一个字符串数组 strs ,将 变位词 组合在一起。 可以按任意顺序返回结果列表。 注意:若两个字符串中每个字符出现的次数都相同,则称它们互为变位词。   示例 1: 输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"] 输出: [["bat"],["nat","tan"],["ate","

图解leetcode——761. 特殊的二进制序列(难度:困难)_爪哇缪斯的博客-爱代码爱编程

一、题目 特殊的二进制序列是具有以下两个性质的二进制序列: 0 的数量与 1 的数量相等。二进制序列的每一个前缀码中 1 的数量要大于等于 0 的数量。 给定一个特殊的二进制序列 S,以字符串形式表示。定义一个操作 为首先选择 S 的两个连续且非空的特殊的子串,然后将它们交换。(两个子串为连续的当且仅当第一个子串的最后一个字符恰好为第二个子串

【总结】岛屿类问题(二维表格的dfs)_不吃冰的北极熊的博客-爱代码爱编程

【leetCode 200.】岛屿数量 https://leetcode.cn/problems/number-of-islands/ 解题思路 首先,我们要遍历所有的格子,如果当前的格子是岛屿,就递归把这个岛屿所有陆地

【leetcode】761.特殊的二进制序列_酥酥~的博客-爱代码爱编程

题目 特殊的二进制序列是具有以下两个性质的二进制序列: 0 的数量与 1 的数量相等。 二进制序列的每一个前缀码中 1 的数量要大于等于 0 的数量。 给定一个特殊的二进制序列 S,以字符串形式表示。定义一个操作 为

126. 单词接龙 ii_小卢要刷力扣题的博客-爱代码爱编程

文章目录 前言解题思路代码 前言 按字典 wordList 完成从单词 beginWord 到单词 endWord 转化,一个表示此过程的 转换序列 是形式上像 beginWord -> s1 -&

【leetcode-74】搜索二维矩阵_ring*的博客-爱代码爱编程

10.5 搜索二维矩阵【74】 10.5.1 题目描述 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数

c++滑动窗口求最大值问题(单调队列,multiset,分块dp)_会写代码的孙悟空的博客-爱代码爱编程

题目描述 给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。 示例: 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3 输出: [3,3,5,5,6,7] 解释:

线性dp题目汇总(持续更新)_sheep.ice的博客-爱代码爱编程

一、前言 此篇章主要整理一些关于线性dp的题目,很多题目其实都可以被挂上线性dp的标志,比如最熟悉的最长上升子序列啊,最长公共子序列啊等等,并且线性dp在自己写力扣周赛的题目的时候,真的会时不时出几道,然后刚好利用这些题目

442. 数组中重复的数据 / 剑指 offer ii 033. 变位词组-爱代码爱编程

442. 数组中重复的数据【中等题】【每日一题】 思路1:【暴力】 开辟一个长度为n的cnt数组用来统计每个数字出现的次数(数字和数组下标的对应关系为 下标 = 数字 - 1),然后遍历cnt数组,当个数等于2时,