思路1:排序+哈希
不难想到,两个词为字母异位词,本质上就是两个字符串排序之后的字符串相等。
所以我们可以建立一个哈希表<键:字符串 , 值:排序前的字符串数组>
接着枚举每一个字符串,将它排序作为键归类,然后插入哈希表的值数组即可。
#code-switcher
P4001.字母异位词分组
Leetcode 49.字母异位词分组-原题链接
题目内容
给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序输出结果列表。
字母异位词是由重新排列源单词的所有字母得到的一个新单词。
输入描述
输入共两行。
- 第一行一个整数n,代表字符串数组长度。
- 第二行有n个字符串,代表字符串数组,字符串之间以空格分隔。
输出描述
输出结果列表,每一行表示一组。
每一组的字符串以空格分隔。
样例1
输入
6
eat tea tan ate nat bat
输出
bat
nat tan
ate eat tea
样例2
输入
1
a
输出
a
提示
- 1<=strs.length<=104
- 0<=strs[i].length<=100
- strs[i]仅包含小写字母