49. 字母异位词分组

2021-12-23 18:49:21 浏览数 (1)

思路:

常规思路:利用map结构,遍历数组,key存储排序后的结果,value存有相同排序结果的字符串;

利用java8提供的stream可以快速做到这个事情:

代码:

代码语言:javascript复制
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?,以下代码测试未通过,符号不识别

代码语言:javascript复制
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);
        }
    }

0 人点赞