《LeetCode力扣练习》第49题 字母异位词分组 Java
一、资源
-
题目:
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。
示例 1:
输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]
输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]示例 2:
输入: strs = [""]
输出: [[""]]示例 3:
输入: strs = [“a”]
输出: [[“a”]]提示:
1 <= strs.length <= 104 0 <= strs[i].length <= 100 strs[i] 仅包含小写字母
-
上代码(经过线上OJ测试)
import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; /** * Created with IntelliJ IDEA. * * @author : DuZhenYang * @version : 2022.03.01 18:01:48 * description : */ public class LeetCode { public List<List<String>> groupAnagrams(String[] strs) { HashMap<String, List<String>> result = new HashMap<>(); for (String x:strs){ char[] chars=x.toCharArray(); Arrays.sort(chars); String key = Arrays.toString(chars); List<String> strings =result.getOrDefault(key,new ArrayList<String>()); strings.add(x); result.put(key,strings); } return new ArrayList<>(result.values()); } }