这个题目的思想就是
拿到一个字符串,然后排序。然后到hash表里面找到对应的加进去。。最后对表进行排序。ok
public class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
HashMap<String, List<String>> hashMap=new HashMap<>();
for (String string2: strs) {
char[]key=string2.toCharArray();
Arrays.sort(key);
String keyStr=new String(key);
List<String> theGet=hashMap.get(keyStr);
if(theGet==null)
{
theGet=new LinkedList<String>();
hashMap.put(keyStr,theGet);
}
theGet.add(string2);
}
List<List<String>> result=new ArrayList<List<String>>(hashMap.size());
Set<String> keySet=hashMap.keySet();
for (String string : keySet) {
List<String> row=hashMap.get(string);
String[] rowStr=new String[row.size()];
row.toArray(rowStr);
Arrays.sort(rowStr);
ArrayList<String> tempResult=new ArrayList<String>(row.size());
for(int i=0;i<rowStr.length;i++)
{
tempResult.add(rowStr[i]);
}
result.add(tempResult);
}
return result;
}
}