蓝桥杯算法赛题目解析:唐僧玩梗

蓝桥杯算法赛题目解析:唐僧玩梗

在蓝桥杯算法赛中,我们经常会遇到一些有趣的题目。今天,我们将详细解析一个有趣的题目——“唐僧玩梗”。该题目涉及到对十二生肖的检查,并要求计算符合条件的徒弟和坐骑的总数。以下是该问题的详细解析及其代码实现。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zswyqCnE-1722102736041)(https://i-blog.csdnimg.cn/direct/0b28659a9d2d43eb9a00bc28d7cfd4b4.png)]

问题描述

唐僧穿越到现代后,竟然也玩起了网络游戏中的梗。他规定:“收徒,收坐骑,不收十二生肖以外的动物”。悟空、八戒、沙僧、小白龙听闻此事后,误以为这是师傅的新规矩,于是纷纷开始检查自己是否属于十二生肖中的动物。那些不属于十二生肖的,将主动退出师门。

现在,我们需要你输出一个整数,表示唐僧剩余徒弟和坐骑的总数。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JVPzyia6-1722102736043)(https://i-blog.csdnimg.cn/direct/c5dec365fae848cf9a787ce7ae9d7b89.png)]

题目解析

为了解决这个问题,我们需要执行以下几个步骤:

  1. 定义十二生肖集合:用来判断动物是否属于生肖。
  2. 定义徒弟和坐骑及其对应动物:列出所有徒弟和坐骑及其对应的动物。
  3. 统计符合条件的徒弟和坐骑数量:遍历字典,检查每个动物是否在生肖集合中,如果在,则增加计数。

解题思路

  1. 定义生肖集合:首先,我们需要一个包含所有十二生肖的集合,用于判断给定动物是否属于生肖。
  2. 定义徒弟和坐骑的映射关系:创建一个字典,将徒弟和坐骑与它们对应的动物类型进行映射。
  3. 统计有效的数量:遍历字典,检查每个动物是否在生肖集合中,并统计符合条件的数量。

代码实现

以下是 Python 实现代码:

# 定义十二生肖集合
zodiac_animals = {"Rat", "Ox", "Tiger", "Rabbit", "Dragon", "Snake", "Horse", "Goat", "Monkey", "Rooster", "Dog", "Pig"}

# 定义徒弟和坐骑及其对应动物
disciples_and_mounts = {
    "孙悟空": "Monkey",
    "猪八戒": "Pig",
    "沙僧": "Human",  # 人形,不属于十二生肖
    "小白龙": "Dragon"
}

def count_zodiac_disciples(disciples, zodiac):
    """
    统计字典中对应的动物是否属于十二生肖,并返回有效的徒弟和坐骑数量。
    """
    remaining_count = 0
    for name, animal in disciples.items():
        if animal in zodiac:
            remaining_count += 1
    return remaining_count

# 计算剩余的徒弟和坐骑的总数
remaining_count = count_zodiac_disciples(disciples_and_mounts, zodiac_animals)

# 输出结果
print(f"剩余的徒弟和坐骑中属于十二生肖的总数是:{remaining_count}")

代码解释

  1. 定义生肖集合:我们定义了一个集合 zodiac_animals,包含了所有十二生肖的动物。
  2. 定义徒弟和坐骑的映射关系:通过字典 disciples_and_mounts 将徒弟和坐骑与它们对应的动物进行映射。
  3. 统计符合条件的数量
    • 创建 count_zodiac_disciples 函数来遍历字典 disciples_and_mounts
    • 对于每个动物,检查它是否在 zodiac_animals 中。
    • 如果在,则增加计数。
  4. 输出结果:计算并输出符合条件的徒弟和坐骑的数量。

总结

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kERUCRcY-1722102736044)(https://i-blog.csdnimg.cn/direct/454425fa14b84decb96562b7a737472a.png)]

在处理这种问题时,我们主要利用了集合和字典的特性。集合提供了高效的成员检查功能,而字典则方便了数据的存储和检索。通过这些数据结构,我们能够快速判断和统计符合条件的徒弟和坐骑数量。

希望这篇文章能够帮助你更好地理解如何处理类似的算法问题。如果你有任何问题或建议,欢迎交流讨论!

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无线网络优化

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值