算法(字母异位词分组)
3.给你一个字符串数组请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。示例 1:输入:strs [eat, tea, tan, ate, nat, bat]输出:[[bat],[nat,tan],[ate,eat,tea]]解释在 strs 中没有字符串可以通过重新排列来形成bat。字符串nat和tan是字母异位词因为它们可以重新排列以形成彼此。字符串ateeat和tea是字母异位词因为它们可以重新排列以形成彼此。示例 2:输入:strs []输出:[[]]示例 3:输入:strs [a]输出:[[a]]提示1 strs.length 1040 strs[i].length 100strs[i]仅包含小写字母class Solution { public ListListString groupAnagrams(String[] strs) { MapString,ListString map new HashMap(); for(String s : strs){ //1.把字符串转为字符数组排序 char[] arr s.toCharArray(); Arrays.sort(arr); String key new String(arr);//排序后的字符串作为key //按key分组(get:只拿值考好了要自己进行判空put:强制覆盖旧值;computeIfAbsent:不存在才创建存在复用极简代码) map.computeIfAbsent(key,k - new ArrayList()).add(s); } //把所有分组收集成结果 return new ArrayList(map.values()); } }