字母异位词分组
题目:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
示例:
输入: [“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());
}