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

2.字母异位词分组

时间:2023-10-29 16:11:48浏览次数:30  
标签:map 数组 strs 异位 字母 分组 key 字符串 new

题目概述:给定一字符串数组。规定由相同字母构成的字符串为同一组,问该字符串数组最终分为几组,返回分完组后的一个二维数组
解题思路:由题意可得:如果两个字符串属于同一组,那么它们必定是由相同字符构成,即对该字符串进行排序后,两个字符串应该是相同的。因此,我们只需对每个字符串先进行排序处理,用map集合进行维护,查询集合中是否由该字符串对应的分组,如果有,直接将该字符串加入分组中;否则,创建一个新的分组。
知识点:创建二维数组,熟悉集合使用。

map.getOrDefault(Object key,V defaultvalue);
作用:如果map集合中存在key,则返回该key值对应的value;否则返回defaultvalue值。注意:defaultvalue的类型要和map定义时的类型一致或者兼容。可以替代if-else判断语句,减少代码量。

代码

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        //用HashMap进行维护,父类接口引用子类对象
        Map<String,List<String>>map = new HashMap<String,List<String>>();
        for(int i = 0; i < strs.length; i ++){
            //转换为字符数组,方便排序
            char str[] = strs[i].toCharArray();
            //调用数组排序方法
            Arrays.sort(str);
            String key = new String(str);

            List<String> list = map.getOrDefault(key,new ArrayList<String>());
            list.add(strs[i]);
            //更新map
            map.put(key,list);
        }
        //返回一个二维数组
    return new ArrayList<List<String>>(map.values());
    }

}

标签:map,数组,strs,异位,字母,分组,key,字符串,new
From: https://www.cnblogs.com/dengch/p/17795962.html

相关文章

  • 力扣学习笔记——49. 字母异位词分组
    49.字母异位词分组https://leetcode.cn/problems/group-anagrams/?envType=study-plan-v2&envId=top-100-liked给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序返回结果列表。字母异位词是由重新排列源单词的所有字母得到的一个新单词。示例1:输入:strs=[......
  • 有字母大小写差异的两列,如何判断数据是否相同?
    1职场实例小伙伴们大家好,今天我们来讲解一下如何对比两列名称是否完全相同,并且将其中一列有重复的单元格高亮突出显示。如下图所示:有B列和C列两列产品名称清单,其中有部分产品名称在两列名称中同时出现,并且B列和C列两列产品名称的排列顺序并不完全相同。我们想要在C列产品名称中将与......
  • 游游的字母串
    链接:https://ac.nowcoder.com/acm/contest/66943/B来源:牛客网对于一个小写字母而言,游游可以通过一次操作把这个字母变成相邻的字母。'a'和'b'相邻,'b'和'c'相邻,以此类推。特殊的,'a'和'z'也是相邻的。可以认为,小写字母的相邻规则为一个环。游游拿到了一个仅包含小写字母的字符串,......
  • Mysql、Oracle 中将汉字(中文)按照拼音首字母排序
    Mysql 将汉字(中文)按照拼音首字母排序ORDERBYCONVERT(表别名.字段名USINGgbk)COLLATEgbk_chinese_ciASC;例子select*from(select'嘉实资产'a,'000830'bunionselect'中金鼎益稳健3号单一资产管理计划'a,'002544'bunionselect......
  • 分区函数 Partition By 与 row_number() 的用法 & 排序rank()的用法详解(获取分组(分
    partitionby关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partitionby用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组,分区函数一般与排名函数一起使用。准备测试数据:createtable......
  • html 数字,字母 超出标签设定的宽度问题
    前因:做一个表格页面时,其中有一列网址数据,但这些内容总会超出表格设定的宽度范围,中文就不会,就类似下面这样: 解决(样式中增加下面代码):word-wrap:break-word;  效果: ......
  • 242. 有效的字母异位词
    目录题目法一、字典题目给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。注意:若 s和t 中每个字符出现的次数都相同,则称 s和t 互为字母异位词。示例1:输入:s="anagram",t="nagaram"输出:true示例2:输入:s="rat",t="car"......
  • Powershell WSUS 自动分组
    $wsusFQDN='WSUSSERVER01.contoso.com'$wsusserver=Get-WsusServer-UseSsl-PortNumber8531-Name$wsusFQDN#WSUSServerFQDN$ungroupservers=Get-WsusComputer-UpdateServer$wsusserver-ComputerTargetGroups'UnassignedComputers'|......
  • 使用@RequestBody时第二个字母映射失败
    在二阶段项目开发过程中,使用@RequestBody接受从前端传过来的对象时,首字母或者第二个字母大写(驼峰命名法)的属性映射失败。1privateDoublehStatusHeight; 原因是:使用了@Data注解(省去了get和set方法)而javaBean的规范导致json传参首字母大写将永远获取不到 解决办法:1.最......
  • 求平均工资大于2500的部门平均工资是 having 新面孔比where强大的地方就在于它可以跟
       ---------------------------- ......