字母异位词分组

字母异位词分组

题目:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。

示例:

输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]
输出:
[
[“ate”,“eat”,“tea”],
[“nat”,“tan”],
[“bat”]
]

思路:字母异位词就是字母相同但顺序不同,将字符串数组中的每个字符的字母进行排序,如果字母相同排序之后顺序也一定相同

public List<List<String>> group(string[] strs){
    return new ArrayList<>(Arrays.stream(strs).collect(
    	Collectors.groupingBy(str->{
            char[] cs = str.toCharArray();
            Arrays.sort(cs);
            return new String(cs);
        })
    ).values());
}
上一篇:面试官问:UDF是在Map端执行还是Reduce端执行?


下一篇:mysql-表关系介绍(开发应用重点知识)