1 public class Solution {
2 public ArrayList<String> anagrams(String[] strs) {
3 // Start typing your Java solution below
4 // DO NOT write main() function
5 int len = strs.length;
6 ArrayList<String> result = new ArrayList<String>();
7 Map<String, ArrayList<String>> sorted = new HashMap<String, ArrayList<String>>();
8
9 for(int i = 0; i < len; i++){
10 String tmp = strs[i];
11 String sort = sortStr(tmp);
12 if(sorted.get(sort) != null){
13 sorted.get(sort).add(tmp);
14 } else {
15 ArrayList<String> list = new ArrayList<String>();
16 list.add(tmp);
17 sorted.put(sort, list);
18 }
19 }
20
21 Iterator iter = sorted.values().iterator();
22 while(iter.hasNext()){
23 ArrayList<String> list = (ArrayList<String>)iter.next();
24 if(list.size() > 1){
25 result.addAll(list);
26 }
27 }
28
29 return result;
30 }
31
32 public String sortStr(String str){
33 char[] c = str.toCharArray();
34 Arrays.sort(c);
35 return new String(c);
36 }
37 }