页面加载中…
通过率 69% · 提交 289 · 通过 198
假设小慕在游戏中刚击败了两个外星人。 外星人共有三种可能的颜色,分别是"green"、"yellow"和"red"。 从标准输入分两行读取小慕击败的两个外星人的颜色。 编写一条,判断这两个外星人的颜色。 如果 - 两个外星人颜色相同,则输出玩家获得5分; - 两个外星人颜色不同,但其中有一个是绿色,则输出玩家获得10分; - 两个外星人颜色不同,且没有一个是绿色,则输出玩家获得15分。 无需考虑输入中包含无关字符串的情况。 例如,分两行依次输入字符串"green"和"red",输出结果为"You get 10 points"。
这类题属于算法机考高频题型中「基础语法 / 条件语句」方向的高频题型,通常考察对「基础语法 / 条件语句」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
两行输入两个外星人的颜色
一行信息字符串
示例 1
输入示例
green red
输出示例
You get 10 points
时间限制 1000 ms · 内存限制 128 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
strip() 去除换行符和多余空白。You get 5 points;green → 输出 You get 10 points;You get 15 points。设 L 为两行输入字符串的总长度:
strip() 各需线性扫描一次;其后只做常数次字符串相等比较,且颜色只有 green/yellow/red 三种固定短串,每次比较可视为 O(1)。green 时属于「相同」得 5 分,而不是落进 10 分的分支。You get X points(大小写、空格都不能差)。c1 = input().strip()
c2 = input().strip()
if c1 == c2:
print("You get 5 points")
elif c1 == "green" or c2 == "green":
print("You get 10 points")
else:
print("You get 15 points")登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有