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());
}
}

  运行结果:

最新文章

  1. C#服务器获取客户端IP地址以及归属地探秘
  2. rpm 看 rpm 包内容
  3. 第39课 Qt中的事件处理(下)
  4. zigbee学习之路(十二):zigbee协议原理介绍
  5. selenium定位元素(本内容从https://my.oschina.net/flashsword/blog/147334处转载)
  6. HDU 1712 裸分组dp
  7. [51单片机] EEPROM 24c02 [I2C代码封装-保存实现流水灯]
  8. Python子类方法的调用(类方法)
  9. ASP.NET导出数据到Excel 实例介绍
  10. [原博客] POJ 2975 Nim 统计必胜走法个数
  11. 小结: Async &amp; Await
  12. java Serialization and Deserializaton
  13. html网页的兼容性和css优先级
  14. npm的package.json字段含义中文文档
  15. 通过内核修改centos密码
  16. 升级到 .NET Core 2.1
  17. Oracle数据库表索引失效,解决办法:修改Oracle数据库优化器模式
  18. 第二章 FFmpeg常用命令
  19. COMBINATORIAL TESTING
  20. MyBatis 与 Hibernate 到底哪个更快?

热门文章

  1. CSAPP buffer lab记录——IA32版本
  2. 正则工具类 -- RegexUtils
  3. 简易log4j 父logger和子logger
  4. DVR_RDK编译报错
  5. 16、SpringBoot-CRUD错误处理机制(3)
  6. 使用document对象操作cookie
  7. 设计模式——责任链(chain of responsibiltiy)
  8. 【luogu P1351 联合权值】 题解
  9. HDU 2086 P - A1 = ?(推表达式)
  10. SSM项目之电商项目easymall(一)