LeetCode-49-字母异位词分组
题目
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的所有字母得到的一个新单词。
示例 1:
1 | 输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"] |
示例 2:
1 | 输入: strs = [""] |
示例 3:
1 | 输入: strs = ["a"] |
提示:
1 <= strs.length <= 104
0 <= strs[i].length <= 100
strs[i]
仅包含小写字母
题解
思路其实还是比较清晰的:
理所当然我们需要判断哪些单词是字母异位词?其实是统计字母出现次数相同,但是这里我们使用排序的方法,排序后相同的单词一定是字母异位词。
那么接下来只需要遍历strs
数组,然后对每个单词都进行排序,使用一个map
保存排序后的string
-在res
里的下标,判断排序后的单词是否是新单词(不是之前某个单词的字母异位词),新单词我们就做新的插入操作;否则就放到相应的字母异位词里去就可以了。时间复杂度97.86%嘿嘿(●ˇ∀ˇ●)
1 | class Solution { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Excelius's World!