magazine中的字母组成一封赎金信,一个字母只能被用一次,看是否能完成制定赎金信
灵神思路:使用python内置Counter
def canConstruct(self, ransomNote: str, magazine: str) -> bool: return Counter(ransomNote) <= Counter(magazine)
Counter是一个用于计算可迭代对象中元素出现次数的工具,它会将元素作为键,出现次数作为值存储在字典中。因此,Counter(ransomNote) <= Counter(magazine)会执行字典比较的操作,它的含义是:如果ransomNote中所有字符出现的次数都不大于等于magazine中对应字符出现的次数,那么这个表达式的结果为True;否则,结果为False。
自己调用的时候记得引入from collections import Counter
拓展:
Python collections模块
namedtuple() : 创建一个命名元组子类的工厂函数
deque :高效增删改双向列表,类似列表(list)的容器,实现了在两端快速添加和弹出
defaultdict : 当字典查询时,为key不存在提供一个默认值。
OrderedDict : 有序词典,就是记住了插入顺序
Counter : 计数功能
还没有评论,来说两句吧...