十四届蓝桥杯STEMA考试Python真题试卷第二套第三题

来源:十四届蓝桥杯STEMA考试Python真题试卷第二套编程第三题
通过这道字符串处理的解析,重点学习字典的 get() 方法和 map() 函数的应用。我们同时也给出了“一行代码”的实现方案,令人惊叹的是到两种实现方法的代码行数差不多是10:1。这次,我们更推荐一行代码的实现方式,因为它更 PythonicPythonicPythonic

题目描述

小蓝有多张兑换劵,这些兑换券可分为 A、B、C 三种,且 1 张 A 加 1 张 B 加 1 张 C 组合可以兑换一个玩偶。现将所有兑换劵排成一排,并以字符串的形式给出,请帮助小蓝计算出现有兑换劵最多可以兑换几个玩偶。

例如:
字符串为 AABBCACCC,可以组成 2 组 ABC,故最多可以兑换 2 个玩偶。

输入描述:
输入一个由 A、B、C 三个大写字母组成的字符串(字符串长度小于 1000)

输出描述:
输出一个整数,表示所有兑换劵按照兑换要求最多可以兑换玩偶的数量

样例输入:

AABBCACCC

样例输出:

2

参考答案

我们编写一个程序来计算最多可兑换的玩偶数量。

def count_dolls(coupons):
    # 计算每种兑换券的数量
    count_a = coupons.count('A')
    count_b = coupons.count('B')
    count_c = coupons.count('C')
    
    # 返回三个数中的最小值,因为每种券都需要一张
    return min(count_a, count_b, count_c)

# 方法2:使用字典统计
def count_dolls_dict(coupons):
    # 使用字典统计每种字符出现的次数
    counts = {
   
   }
    for c in coupons:
        counts[c] = counts.get(c, 0) + 1
    
    # 确保所有类型的券都存在
    if 'A' not in counts or 'B' not in
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值