题目如下这题主要是抓住一个要点:strs中的每一个字符串如果互为异位词,那么这两个字符串经过排序一定相等.那么我们就可以使用哈希表(HashMap),键设为排序后的字符串,值设为这个字符串所代表的异位词数组,MapString, ListString map new HashMap();那么返回值就是map的值数组map.values();public ListListString groupAnagrams(String[] strs) { MapString, ListString map new HashMap(); for (String s : strs) { // 把字符串转成字符数组并排序 char[] chars s.toCharArray(); Arrays.sort(chars); String key new String(chars); // 排序后的字符串一样就放同一组 if (!map.containsKey(key)) { map.put(key, new ArrayList()); } map.get(key).add(s); } // 把所有组返回 return new ArrayList(map.values()); }
LeetCode Hot100第二题 字母异位词分组
题目如下这题主要是抓住一个要点:strs中的每一个字符串如果互为异位词,那么这两个字符串经过排序一定相等.那么我们就可以使用哈希表(HashMap),键设为排序后的字符串,值设为这个字符串所代表的异位词数组,MapString, ListString map new HashMap();那么返回值就是map的值数组map.values();public ListListString groupAnagrams(String[] strs) { MapString, ListString map new HashMap(); for (String s : strs) { // 把字符串转成字符数组并排序 char[] chars s.toCharArray(); Arrays.sort(chars); String key new String(chars); // 排序后的字符串一样就放同一组 if (!map.containsKey(key)) { map.put(key, new ArrayList()); } map.get(key).add(s); } // 把所有组返回 return new ArrayList(map.values()); }