题目
方法一:排序
public class GroupAnagrams {
public List<List<String>> groupAnagrams(String[] strs) {
HashMap<String, List<String>> hashMap = new HashMap<>();
for (int i = 0; i < strs.length; i++) {
char[] c = strs[i].toCharArray();
Arrays.sort(c);
String key = new String(c);
List<String> list = hashMap.getOrDefault(key, new ArrayList<String>());
list.add(strs[i]);
hashMap.put(key, list);
}
return new ArrayList<List<String>>(hashMap.values());
}
public static void main(String[] args) {
String[] strs = {"eat", "tea", "tan", "ate", "nat", "bat"};
GroupAnagrams groupAnagrams = new GroupAnagrams();
System.out.println(groupAnagrams.groupAnagrams(strs));
}
}
LeetCode测试结果