思路:
常规思路:利用map结构,遍历数组,key存储排序后的结果,value存有相同排序结果的字符串;
利用java8提供的stream可以快速做到这个事情:
代码:
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
return new ArrayList<>( Arrays.stream(strs).collect(Collectors.groupingBy(item -> {
char[] chars = item.toCharArray();
Arrays.sort(chars);
return new String(chars);
})).values());
}
}
也不知道为啥,可能leetcode不支持Collection?,以下代码测试未通过,符号不识别
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
Collection<List<String>> values = Arrays.stream(strs).collect(Collectors.groupingBy(item -> {
char[] chars = item.toCharArray();
Arrays.sort(chars);
return new String(chars);
})).values();
return new ArrayList<>(values);
}
}
网友评论