题目描述:
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
示例:
输入: ["eat", "tea", "tan", "ate", "nat", "bat"]
输出:
[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/group-anagrams
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路:
1、首先需要明确所谓字母异位词的字符串经过sorted之后相同,可以依据此来判断是否互为字母异位词。
2、利用字典,字典的键就是经过sorted的字符串,字典的值就是互为字母异位词的字符串列表
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
if(not str):
return []
#初始化字典
dict={}
#遍历字符串列表
for s in strs:
k="".join(sorted(s))
#对于字典,可以用in确定某个值是否在字典的键中
if(k not in dict):
dict[k]=[]
dict[k].append(s)
else:
dict[k].append(s)
#dict.values()可以返回字典所有的值
return list(dict.values())