DBeaver连接CDH集群实战:手把手配置Hive、Impala、Phoenix(含HAWQ与Redis)完整指南
2026/5/10 19:22:43
这题我们可以遍历每一个字符串,然后把每个字符串根据字母排序,这样所有异位词排序后的字符串就是相同的,将这个排好序的字符串作为哈希表的key,异位词列表作为对应的value,这样就行了
class Solution { public List<List<String>> groupAnagrams(String[] strs) { // key: 排序后的字符串 // value: 属于这一组的原字符串列表 Map<String, List<String>> map = new HashMap<>(); for (String str : strs) { // 1. 转字符数组 char[] chars = str.toCharArray(); // 2. 排序 Arrays.sort(chars); // 3. 排序后重新变成字符串 String key = new String(chars); // 4. 如果不存在这个key,先创建 if (!map.containsKey(key)) { map.put(key, new ArrayList<>()); } // 5. 加入对应组 map.get(key).add(str); } // 返回所有 value return new ArrayList<>(map.values()); } }