Anagrams
/**
* Given an array of strings, return all groups of strings that are anagrams.
* Note: All inputs will be in lower-case.
*/
public class Solution {
public ArrayList<String> anagrams(String[] strs) {
ArrayList<String> result = new ArrayList<String>();
HashMap<String, ArrayList<String>> list = new HashMap<String, ArrayList<String>>();
if (strs.length == 0)
return result;
for (String s : strs) {
char[] charArray = s.toCharArray();
Arrays.sort(charArray);
String key = new String(charArray);
if (list.containsKey(key)) {
list.get(key).add(s);
} else {
list.put(key, new ArrayList<String>(Arrays.asList(s)));
}
}
for (ArrayList<String> test : list.values()) {
if (test.size() > 1) {
result.addAll(test);
}
}
return result;
}
}