You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Minion Game代码HackerRank测试用例失败及输出方式疑问

The Minion Game 问题解答

你的代码

def minion_game(string):
    vowels = 'AEIOU'
    kevin = 0
    stuart = 0
    n = len(string)

    for i in range(n):
        if string[i] in vowels:
            kevin += n - i
        else:
            stuart += n - i

    if kevin > stuart:
        winner = "Kevin"
        score = kevin
    elif kevin < stuart:
        winner = "Stuart"
        score = stuart
    else:
        winner = "Draw"
        score = kevin

    print(winner, score)

if __name__ == '__main__':
    s = input()
    minion_game(s)

问题背景

The Minion Game规则:Kevin使用以元音开头的子串、Stuart使用以辅音开头的子串,每个子串出现一次得1分。


疑问解答

1. return返回报错,print通过的原因

HackerRank的判题系统通过**捕获标准输出(控制台打印内容)**验证结果。return返回的结果仅在函数内部传递,不会输出到控制台,系统无法获取有效结果,因此报错;print语句会将结果直接输出到标准输出,系统能捕获到该内容,所以可通过测试。

2. 部分测试用例失败的原因

你的代码中元音仅定义为大写的'AEIOU',但HackerRank的测试用例可能包含小写字母输入(如全小写或混合大小写的字符串)。此时小写元音(如'a'、'e')不会被识别为元音,会被错误计入Stuart的分数,导致最终得分和结果错误。

解决方法:

  • 将元音集合改为包含大小写:vowels = 'AEIOUaeiou'
  • 或处理前将输入字符串统一转为大写(或小写):string = string.upper()

内容的提问来源于stack exchange,提问作者user3521180

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 17:13:10