对比下242题
对单词排序后判断是否是字母异位词,用map来记录;map的key为排序之后的单词,value为list数组
public List<List<String>> groupAnagrams(String[] strs) {
if(strs==null || strs.length==0) {
return new ArrayList<List<String>>();
}
//判断两个元素是否是字母异位次,排序之后判断O(klogk)
//使用map来进行记录、统计
Map<String, List<String>> map = new HashMap<>();
for(String str : strs) {
char[] c = str.toCharArray();
Arrays.sort(c);
String sortedStr = String.valueOf(c);
if(!map.containsKey(sortedStr)) {
map.put(sortedStr, new ArrayList<String>());
}
map.get(sortedStr).add(str);
}
return new ArrayList<List<String>>(map.values());
}