当前位置:网站首页>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());
}
}
代码说明
注释见。。。
边栏推荐
- Clock cycle
- Shandong University Summer Training - 20220620
- 《2022年中国银行业RPA供应商实力矩阵分析》研究报告正式启动
- PyCharm安装第三方库图解
- UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xe6 in position 76131: invalid continuation byt
- mysql获得时间
- Cf:a. the third three number problem
- 先写API文档还是先写代码?
- Natural language processing from Xiaobai to proficient (4): using machine learning to classify Chinese email content
- 初次使用腾讯云,解决只能使用webshell连接,不能使用ssh连接。
猜你喜欢
Reverse Polish notation
Jenkins installation
About the single step debugging of whether SAP ui5 floating footer is displayed or not and the benefits of using SAP ui5
CloudCompare——点云切片
精彩速递|腾讯云数据库6月刊
[深度学习论文笔记]TransBTSV2: Wider Instead of Deeper Transformer for Medical Image Segmentation
聊聊异步编程的 7 种实现方式
Principle and configuration of RSTP protocol
Pycharm installation third party library diagram
蜀天梦图×微言科技丨达梦图数据库朋友圈+1
随机推荐
Talking about fake demand from takeout order
私有地址有那些
JS to determine whether an element exists in the array (four methods)
Simple page request and parsing cases
记录一下在深度学习-一些bug处理
SAE international strategic investment geometry partner
[notes of in-depth study paper]uctransnet: rethink the jumping connection in u-net from the perspective of transformer channel
What is a network port
Shuttle INKWELL & ink components
“百度杯”CTF比赛 九月场,Web:SQL
程序员成长第八篇:做好测试工作
潘多拉 IOT 开发板学习(HAL 库)—— 实验7 窗口看门狗实验(学习笔记)
Association modeling method in SAP segw transaction code
leetcode 10. Regular Expression Matching 正则表达式匹配 (困难)
Write macro with word
Discussion on error messages and API versions of SAP ui5 getsaplogonlanguage is not a function
leetcode:221. Maximum square [essence of DP state transition]
My colleague didn't understand selenium for half a month, so I figured it out for him in half an hour! Easily showed a wave of operations of climbing Taobao [easy to understand]
量价虽降,商业银行结构性存款为何受上市公司所偏爱?
jenkins安装