LeetCodeHot100-49-字母异位词分组
题目
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的所有字母得到的一个新单词。
示例 1:
1 |
|
示例 2:
1 |
|
示例 3:
1 |
|
提示:
1 <= strs.length <= 104
0 <= strs[i].length <= 100
strs[i]
仅包含小写字母
题解
Python
这一题的话,思路和上一题是差不多的。
我们不可能计算出所有的字母异位词,一个可行的方案是,无论什么长度的字母异位词,它们的字母排序后一定是一致的,那么借助这个思想,先把字符串进行排序,如果得到一样的
sorted_str
,那么它们就是字母异位词。
这里就自然而然想到使用哈希表进行数据的存储,这个哈希表的结构应该为:排序后的字符串-出现过的字母异位词列表。
那么我们只需要一次遍历,同样使用 enumerate()
方法方便获取下标和元素,对于当前的字符串进行排序,使用的是
sorted()
方法,该方法可以对任何可以迭代的对象进行排序,十分强大。然后排序的结果是一个
list
,因此还需要把这个列表进行组合为一个字符串,使用
''.join()
方法,这个方法可以将可迭代对象(如列表、元组、字符串等)中的元素合并成一个单一的字符串,也是十分强大的。
然后进行判断就好啦,如果排序后的字符串在哈希表中,那么把当前字符串放到该位置的后面,调用
append()
方法把数据添加到对应 list
的末尾;如果不在,那么就新添加进去就好,记得数据类型是一个列表。
1 |
|
Java
1 |
|
LeetCodeHot100-49-字母异位词分组
https://excelius.xyz/leetcodehot100-49-字母异位词分组/