给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。
示例 1:
输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
输出: [["bat"],["nat","tan"],["ate","eat","tea"]]
示例 2:
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/group-anagrams
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:其实这是个hash问题,我使用了sorted方法,当然这个效率低一些,但是好在可以通过
class Solution:
#{"eat":["eat","eta"],"bate":["bate","btea"]}
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
out = {}
result = []
for i in range(len(strs)):
if "".join(sorted(list(strs[i]))) in out.keys():
in_list = out["".join(sorted(strs[i]))]
in_list.append(strs[i])
else:
in_list = []
in_list.append(strs[i])
out["".join(sorted(strs[i]))]=in_list
for key in out.keys():
result.append(out[key])
return result