对应链接如下: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函数比较
- 大小比较
- +-
- 交集并集