
leetcode49-字母异位词分组
2020-12-14 / highPhone啊
这是leetcode题库的第49题 - 字母异位词分组
解题思路
解答前分析
根据题目意思:- 输入的数据全是小写字母,所以这道题目不必考虑大小写问题
- 不用考虑输出的顺序
- 输入为空的情况返回空的List
解题分析
- 异位词,可以看作是同一个字符串中字符的不同组合,所以,当所有异位词中的字符按照字母顺序重新排序后,肯定是相同的。
- 所有的异位词最终需要放到同一个数组中返回,考虑用ArrayList去存放同一组异位词
- 利用HashMap中key的唯一性,把2中的同类异位词放到HashMap中,key就是1中提到的字符数组排序后的值,这里注意要用String(不可变)做key,而非这个排序的字符数组
- 遍历入参的字符串数组,对于每个字符串元素,利用一个字符数组排序后,得到这个字符串的key,再去3中的HashMap中寻找,如果有找到这个key,证明前面已经有这个类别的异位词了,我们就把新的异位词添加到后面;如果没找到这个key,就新建一个ArrayList去存放这个异位词。
- 遍历完成后,我们就得到了一个分类好的HashMap,key是各个类别的异位词按字母顺序排列的字符串,value是这个类别的异位词数组,由于我们只关注value,所以只需要把value返回即可。
代码实现
1 | class Solution { |
解答结果

更多题解
本文链接:https://highphone.xyz/29fb013c.html