【leetcode】【哈希】383. 赎金信

47 阅读1分钟

对应链接如下:383. 赎金信 - 力扣(LeetCode)

【思路】

计算2个字符串各个字符的频率,要满足拼接字符串的各个字符出现频率均大于被拼接字符串。

【代码】

class Solution:
    def canConstruct(self, ransomNote: str, magazine: str) -> bool:
        return Counter(ransomNote) <= Counter(magazine)

【知识点】

Counter函数解析

Counter是Python标准库collections模块中的一个类,用于计数可哈希对象。它本质上是一个字典的子类,其中元素存储为字典的键,它们的计数存储为字典的值(计数可以是任何整数,包括零或负数)。

实际上就是一个哈希表计算每个字符的出现频率。

str1 = "aAADADSAWCFD"
Counter(str1)
# Counter({'A': 4, 'D': 3, 'a': 1, 'S': 1, 'W': 1, 'C': 1, 'F': 1})

Counter函数比较

  • 大小比较
  • +-
  • 交集并集