赞
踩
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。
示例 1:
输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
输出: [["bat"],["nat","tan"],["ate","eat","tea"]]
示例 2:
输入: strs = [""]
输出: [[""]]
示例 3:
输入: strs = ["a"]
输出: [["a"]]
这道题算是个简单题了,虽然包含同样字符的字符串可能有多种形态,但将他们按字母顺序排序后结果是一样的,我们可以根据这个排序结果来判断是否应该将他们放在一起。
放在一起的形式,我们可以用字典的方式,key为共同的排序结果,value为各个不同的单词。
- class Solution(object):
-
- def groupAnagrams(self, strs):
-
- dic={}#定义一个字典
-
- for s in strs:#遍历每一个单词
-
- a = sorted(list(s))#对单词进行排序
-
- a = ''.join(a)#单词排完序后是个列表,需要转回为字符串
-
- if a not in dic:#如果是一个心得字母组合
-
- dic[a] = [s]#添加这个组合到key,value为原单词s,初始化为一个列表
-
- else:#如果组合已经存在
-
- dic[a].append(s)#把s添加到value列表中
-
- return dic.values()

最后我们用字典的values()属性,能正好把这些组合按题意输出~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。