1 Star 0 Fork 0

临窗旋墨/basics

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
J0049_M_GroupAnagrams.java 1.43 KB
一键复制 编辑 原始数据 按行查看 历史
临窗旋墨 提交于 2020-12-14 13:53 . leetcode :49. 字母异位词分组
package pers.vic.basics.leetcode;
import java.util.*;
/**
* @description: 49. 字母异位词分组 {@literal https://leetcode-cn.com/problems/group-anagrams/}
* @author Vic.xu
* @date: 2020/12/11 0011 8:18
*/
public class J0049_M_GroupAnagrams {
/*
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
说明:
所有输入均为小写字母。
不考虑答案输出的顺序。
*/
/**
* 这个问题还是很简单的:
* 1. 字符串按照顺序排序, 则相同组成的字符串能转化程相等的新字符串key
* 2. 然后相等的key对应的字符串放在map对应的list集合中即可
*/
public static List<List<String>> groupAnagrams(String[] strs) {
Map<String, List<String>> map = new HashMap<>();
for (String str : strs) {
char[] cs = str.toCharArray();
Arrays.sort(cs);
String key = new String(cs);
map.compute(key, (k, v) -> {
if (v == null) {
v = new ArrayList<>();
}
v.add(str);
return v;
});
}
return new ArrayList<>(map.values());
}
public static void main(String[] args) {
String[] strs = {"eat", "tea", "tan", "ate", "nat", "bat"};
groupAnagrams(strs).forEach(System.out::println);
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/xuqiudong/basics.git
git@gitee.com:xuqiudong/basics.git
xuqiudong
basics
basics
master

搜索帮助

Cb406eda 1850385 E526c682 1850385