package class28; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; public class Problem_0049_GroupAnagrams { public static List> groupAnagrams1(String[] strs) { HashMap> map = new HashMap>(); for (String str : strs) { int[] record = new int[26]; for (char cha : str.toCharArray()) { record[cha - 'a']++; } StringBuilder builder = new StringBuilder(); for (int value : record) { builder.append(String.valueOf(value)).append("_"); } String key = builder.toString(); if (!map.containsKey(key)) { map.put(key, new ArrayList()); } map.get(key).add(str); } List> res = new ArrayList>(); for (List list : map.values()) { res.add(list); } return res; } public static List> groupAnagrams2(String[] strs) { HashMap> map = new HashMap>(); for (String str : strs) { char[] chs = str.toCharArray(); Arrays.sort(chs); String key = String.valueOf(chs); if (!map.containsKey(key)) { map.put(key, new ArrayList()); } map.get(key).add(str); } List> res = new ArrayList>(); for (List list : map.values()) { res.add(list); } return res; } }