import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
/*
* Given an array of strings, return all groups of strings that are anagrams.
* Note: All inputs will be in lower-case.
*/
public class Anagrams {
private String sortString(String str) {
char[] arr = str.toCharArray();
Arrays.sort(arr);
return new String(arr);
}
public ArrayList<String> anagrams(String[] strs) {
//
if(strs == null) return null;
ArrayList<String> results = new ArrayList<String>();
HashMap<String, String> map = new HashMap<String, String>();
for(String str: strs) {
String temp = sortString(str);
if(!map.containsKey(temp)) {
map.put(temp, str);
} else {
results.add(str);
if(map.get(temp) != null) {
results.add(map.get(temp));
map.put(temp, null);
}
}
}
return results;
}
/**
* @param args
*/
public static void main(String[] args) {
}
}