LeetCode 面试题 10.02. 变位词组缩略图

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

注意:本题相对原题稍作修改

面试题 10.02. 变位词组 – 力扣(LeetCode)
LeetCode 面试题 10.02. 变位词组插图

思路:创建一个哈希表,遍历列表,排序后的key值作为键,值就是所有形式符合key的

python3实现

class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        # 哈希表

        result = {}
        for elem in strs:
            # 用key+value作为字典的键,所有复合的作为值
            dic_elem = collections.Counter(elem)
            keys_ = list(dic_elem.keys())
            keys_.sort()
            combine = ""
            for i in keys_:
                combine += i
                combine += str(dic_elem[i])
            
            result_keys = list(result.keys())
            if combine in result_keys:
                pass
            else:
                result[combine] = []
            result[combine].append(elem)
        
        return list(result.values())

LeetCode 面试题 10.02. 变位词组插图1

更多干货见 OpenCV步步精深

可以慢慢走,但是永远都不要停下前行的脚步。

作者 admin

发表回复

您的电子邮箱地址不会被公开。