LeetCode:49. Group Anagrams(Medium)
2024-08-29 23:59:34
1. 原题链接
https://leetcode.com/problems/group-anagrams/description/
2. 题目要求
给定一个字符串数组,将数组中包含相同字母的元素放在同一个列表,例如:
注意:所有的字母都是小写
3. 解题思路
首先对数组中的每个字符串按字母进行排序,这样含有相同字母的字符串排序后可以视作相等。
同时利用HasMap,将排序后的字符串作为key,排序前的作为value进行存储。最后返回HashMap的value即可。
4. 代码实现
import java.util.*; public class GroupAngrams49 {
public static void main(String[] args) {
String[] group = {"eat", "tea", "tan", "ate", "nat", "bat"};
List<List<String>> res = groupAnagrams(group);
for(List l:res){
System.out.print(l.toString());
System.out.println();
} } public static List<List<String>> groupAnagrams(String[] strs){
if(strs.length==0)
return new ArrayList();
Map<String,List> map = new HashMap<String,List>();
for(String str :strs){
char[] strArray = str.toCharArray();
Arrays.sort(strArray);
String key = String.valueOf(strArray);
if(!map.containsKey(key))
map.put(key,new ArrayList());
map.get(key).add(str);
}
return new ArrayList(map.values());
}
}
运行结果:
最新文章
- C#服务器获取客户端IP地址以及归属地探秘
- rpm 看 rpm 包内容
- 第39课 Qt中的事件处理(下)
- zigbee学习之路(十二):zigbee协议原理介绍
- selenium定位元素(本内容从https://my.oschina.net/flashsword/blog/147334处转载)
- HDU 1712 裸分组dp
- [51单片机] EEPROM 24c02 [I2C代码封装-保存实现流水灯]
- Python子类方法的调用(类方法)
- ASP.NET导出数据到Excel 实例介绍
- [原博客] POJ 2975 Nim 统计必胜走法个数
- 小结: Async &; Await
- java Serialization and Deserializaton
- html网页的兼容性和css优先级
- npm的package.json字段含义中文文档
- 通过内核修改centos密码
- 升级到 .NET Core 2.1
- Oracle数据库表索引失效,解决办法:修改Oracle数据库优化器模式
- 第二章 FFmpeg常用命令
- COMBINATORIAL TESTING
- MyBatis 与 Hibernate 到底哪个更快?