编程语言
首页 > 编程语言> > 力扣49(java)-字母异位词分组(中等)

力扣49(java)-字母异位词分组(中等)

作者:互联网

题目:

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。

 示例 1:

输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
输出: [["bat"],["nat","tan"],["ate","eat","tea"]]
示例 2:

输入: strs = [""]
输出: [[""]]
示例 3:

输入: strs = ["a"]
输出: [["a"]]
 

提示:

1 <= strs.length <= 104
0 <= strs[i].length <= 100
strs[i] 仅包含小写字母

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/group-anagrams
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

哈希表:

1.首先判断特殊情况,字符串数组为空就返回一个新数组;

2.字符串数组不为空,首先创建一个哈希表,然后将不同的字符串转换成字符数组,并按照字母顺序进行排序;

3.将排序后的字符串作为哈希表中的key值,判断哈希表中是否有当前key值,若不存在,则为新的异位词语,在map中创建新的键值对,然后将该字符串放在对应key的list中;

4.将字母异位词组成的集合作为哈希表的value值,返回map中所有键值对象构成的list。

代码:

 

标签:java,数组,49,strs,异位,字母,力扣,哈希,字符串
来源: https://www.cnblogs.com/lmy569/p/16271578.html