Anagrams
Given an array of strings, return all groups of strings that are anagrams. All inputs will be in lower-case
Example
Given ["lint", "intl", "inlt", "code"], return ["lint", "inlt", "intl"].
Given ["ab", "ba", "cd", "dc", "e"], return ["ab", "ba", "cd", "dc"].
1 public class Solution { 2 /** 3 * @param strs: A list of strings 4 * @return: A list of strings 5 */ 6 public List<String> anagrams(String[] strs) { 7 List<String> result = new ArrayList<>(); 8 if (strs == null || strs.length == 0) { 9 return result; 10 } 11 HashMap<String, ArrayList<String>> map = new HashMap<>(); 12 for (String str : strs) { 13 char[] ch = str.toCharArray(); 14 Arrays.sort(ch); 15 String s = new String(ch); 16 if (!map.containsKey(s)) { 17 map.put(s, new ArrayList<String>()); 18 } 19 map.get(s).add(str); 20 } 21 22 for (ArrayList<String> list : map.values()) { 23 if (list.size() > 1) { 24 result.addAll(list); 25 } 26 } 27 return result; 28 } 29 }

浙公网安备 33010602011771号