【哈希表】2023A-集五福

题目描述
集五福作为近年来大家喜闻乐见迎新春活动,集合爱国福、富强福、和谐福、友善福、敬业福即可分享超大红包。以 0 和 1 组成的长度为 5 的字符串代表每个人所得到的福卡,每一位代表一种福卡,1 表示已经获得该福卡,单类型福卡不超过 1 张,随机抽取一个小于 10 人团队,求该团队最多可以集齐多少套五福?
from collections import Counter
团队数组,包含了n个字符串,表示每个人拥有的五福
team = input().split(“,”)
用于统计团队中各种五福个数的长度为的哈希表
cnt = Counter()

遍历团队中的每一个人
for person in team:

# 遍历每一个人拥有的五福
for i, num in enumerate(person):
    # 如果这个人拥有第i个五福,那么计数+1
    if num == "1":
        cnt[i] += 1

整个团队中最少的那个五福的数目,决定了能凑齐五福的套数
要注意:如果哈希表长度小于5,说明有某个福字的数量为0,应该输出0
print(0) if len(cnt) < 5 else print(min(cnt.values()))

enumerate()总而言之enumerate就是枚举的意思,把元素一个个列举出来,第一个是什么,第二个是什么,所以他返回的是元素以及对应的索引。

是否存在重复元素 return (len(set(nums)) != len(nums))
两个数组的交集 return list(set(nums1) & set(nums2))
有效的字母异位词 return Counter(s) == Counter(t)