当前位置:网站首页>49. 字母异位词分组:给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。
49. 字母异位词分组:给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。
2022-07-05 13:19:00 【?abc!】
题目描述
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。
示例 1:
输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]
输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]
示例 2:
输入: strs = [“”]
输出: [[“”]]
示例 3:
输入: strs = [“a”]
输出: [[“a”]]
思路
从题目意思可知:
- 两个字符串互为字母异位词,需要
两个字符串包含的字母相同
- 因此对
两个字符串分别进行排序
之后得到的字符串一定是相同的 - 使用哈希表存储每一组字母异位词,
哈希表的键为一组字母异位词的标志,哈希表的值为一组字母异位词列表
将排序之后的字符串作为哈希表的键
代码
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);
//将排序后的字符数组转为字符串作为map的键
String key = new String(array);
//map.getOrDefault(key,defaultValue):当Map集合中有这个key时,就使用这个key对应的value值,如果没有这个key就使用默认值defaultValue
List<String> list = map.getOrDefault(key,new ArrayList<String>());
//将当前字符串存入list集合中
list.add(str);
//将其存入map中
map.put(key,list);
}
return new ArrayList<List<String>>(map.values());
}
}
代码说明
注释见。。。
边栏推荐
- MySQL splits strings for conditional queries
- Pycharm installation third party library diagram
- 百度杯”CTF比赛 2017 二月场,Web:爆破-2
- Shuttle INKWELL & ink components
- Default parameters of function & multiple methods of function parameters
- 《2022年中國銀行業RPA供應商實力矩陣分析》研究報告正式啟動
- Flutter draws animation effects of wave movement, curves and line graphs
- Alibaba cloud SLB load balancing product basic concept and purchase process
- 程序员成长第八篇:做好测试工作
- There is no monitoring and no operation and maintenance. The following is the commonly used script monitoring in monitoring
猜你喜欢
阿里云SLB负载均衡产品基本概念与购买流程
Datapipeline was selected into the 2022 digital intelligence atlas and database development report of China Academy of communications and communications
Alibaba cloud SLB load balancing product basic concept and purchase process
国际自动机工程师学会(SAE International)战略投资几何伙伴
RHCSA8
Can and can FD
CloudCompare——点云切片
About the single step debugging of whether SAP ui5 floating footer is displayed or not and the benefits of using SAP ui5
MySQL --- 数据库查询 - 排序查询、分页查询
聊聊异步编程的 7 种实现方式
随机推荐
leetcode 10. Regular expression matching regular expression matching (difficult)
js判断数组中是否存在某个元素(四种方法)
数据湖(七):Iceberg概念及回顾什么是数据湖
Fragmented knowledge management tool memos
DataPipeline双料入选中国信通院2022数智化图谱、数据库发展报告
蜀天梦图×微言科技丨达梦图数据库朋友圈+1
CloudCompare——点云切片
Reflection and imagination on the notation like tool
Go pointer
mysql econnreset_ Nodejs socket error handling error: read econnreset
Hundred days to complete the open source task of the domestic database opengauss -- openguass minimalist version 3.0.0 installation tutorial
国际自动机工程师学会(SAE International)战略投资几何伙伴
Natural language processing from Xiaobai to proficient (4): using machine learning to classify Chinese email content
Flutter 绘制波浪移动动画效果,曲线和折线图
There is no monitoring and no operation and maintenance. The following is the commonly used script monitoring in monitoring
C# 对象存储
前缀、中缀、后缀表达式「建议收藏」
MATLAB论文图表标准格式输出(干货)
聊聊异步编程的 7 种实现方式
The Research Report "2022 RPA supplier strength matrix analysis of China's banking industry" was officially launched