Leetcode打卡系列------4

面试题10.02.变位词组

题目描述:编写一种方法,对字符串数组进行排序,将所有变位词组合在一起,变位词是指字母相同,但排列不同的字符串。

示例:
输入:[“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]
输出:[ [“ate”, “eat”, “tea”], [“nat”,“tan”], [“bat”] ]

思路:这里首先利用循环对各个字符串进行排序,之后利用.join()把排序后的字符串连接起来,最后把连接好的字符串当作字典的Key,把key值相同的合并起来,最后返回字典的value值即可

#参考代码

class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        classes = dict()
        for s in strs:
        	#循环遍历字符串组
        	#sorted()对各个字符串里面的字符进行排序
        	#.join()是将各个字符进行连接
            sort_s = ''.join(sorted(s))
            #sorts当作key值,把key值相同的放在一起
            classes[sort_s] = classes.get(sort_s, []) + [s]
            #返回字典中的value值
        return [vals for vals in classes.values()]

你可能感兴趣的:(算法)