public List<String> anagrams(String[] strs){
String cur, key;
HashMap<String, Integer> map = new HashMap<String, Integer>();
List<String> ans = new ArrayList<String>();
for(int i = 0; i < strs.length; i++)
{
cur = strs[i];
key = getKey(cur);
if(map.get(key) != null) ans.add(cur);
else map.put(key, i);
}
cur = ans.get(0);
key = getKey(cur);
ans.add(strs[map.get(key)]);
return ans;
}
String getKey(String input)
{
char pool[] = new char[26];//小写字母为26个思密达
for(int i = 0; i < input.length(); i++)
pool[input.charAt(i) - 'a']++;
String key = new String(pool);
return key;
}
String cur, key;
HashMap<String, Integer> map = new HashMap<String, Integer>();
List<String> ans = new ArrayList<String>();
for(int i = 0; i < strs.length; i++)
{
cur = strs[i];
key = getKey(cur);
if(map.get(key) != null) ans.add(cur);
else map.put(key, i);
}
cur = ans.get(0);
key = getKey(cur);
ans.add(strs[map.get(key)]);
return ans;
}
String getKey(String input)
{
char pool[] = new char[26];//小写字母为26个思密达
for(int i = 0; i < input.length(); i++)
pool[input.charAt(i) - 'a']++;
String key = new String(pool);
return key;
}