// 字母异位词分组 排序+hash
// 输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
// 输出: [["bat"],["nat","tan"],["ate","eat","tea"]]
public static List<List<String>> groupAnagrams(String[] strs){
HashMap<String, List<String>> map = new HashMap<String, List<String>>();
for(String str:strs){
char[] array = str.toCharArray();
Arrays.sort(array);
String key=new String(array);
List<String> list=map.getOrDefault(key,new ArrayList<String>());
list.add(str);
map.put(key,list);
}
return new ArrayList<List<String>>(map.values());
}