classSolution{ public List<List<String>> groupAnagrams(String[] strs) { if(strs.length == 0) returnnull; List<List<String>> ans = new ArrayList<List<String>>(); Map<String, Integer> m = new HashMap<String, Integer> (); int count = 0; for(String i : strs){ char[] arrayString = i.toCharArray(); Arrays.sort(arrayString); if(m.containsKey(String.valueOf(arrayString))){ int index = m.get(String.valueOf(arrayString)); List<String> t = ans.get(index); t.add(i); ans.remove(index); ans.add(index, t); } else{ List<String> t = new ArrayList<String> (); t.add(i); ans.add(t); m.put(String.valueOf(String.valueOf(arrayString)),count); count++; } } return ans; } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
classSolution(object): defgroupAnagrams(self, strs): """ :type strs: List[str] :rtype: List[List[str]] """ dic = {} for i in strs: counter = str(sorted(i)) if counter notin dic: dic[counter] = [] dic[counter].append(i) ans = [] for i in dic.keys(): ans.append(dic[i]) return ans