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

理解countStuart/countKevin代码中索引减法的统计逻辑

Minion游戏代码逻辑解析

1. 为什么用count += length - i而非直接累加?

首先明确这段代码对应的Minion游戏规则:Stuart统计所有以辅音开头的子串数量,Kevin统计所有以元音(A/E/I/O/U,不区分大小写)开头的子串数量,每个符合条件的子串计1分。

length - i的作用是计算以索引i位置字符开头的所有可能子串的总数。举个实际例子:
假设输入字符串是"banana",长度length=6:

  • 当i=0(字符b),以它开头的子串有b、ba、ban、bana、banan、banana,共6个,正好对应6-0=6;
  • 当i=1(字符a),以它开头的子串有a、an、ana、anan、anana,共5个,对应6-1=5。

如果直接累加,只能统计符合条件的字符个数,而非每个字符能衍生出的所有子串数量——这完全不符合游戏计分规则,因为每个子串都要算1分,不是每个字符算1分。所以必须用length - i一次性算出当前字符对应的所有有效子串数量,再累加到得分中。

2. minion_game(string)的设计逻辑与行为

这个函数是整个游戏的胜负判定核心,逻辑非常直接:

  1. 调用stuart(string)和kevin(string),分别获取两人的总得分;
  2. 对比得分结果:
    • 若Stuart得分更高,输出"Stuart {得分}";
    • 若Kevin得分更高,输出"Kevin {得分}";
    • 若两人得分相等,输出"Draw"。

它的设计完全贴合Minion游戏的胜负规则:谁累计的有效子串数量多,谁获胜;数量相同则平局。整个函数就是对两位玩家的得分结果做一次简单比较,输出对应结论,没有额外复杂逻辑。

内容的提问来源于stack exchange,提问作者B.Parthiban

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 10:12:04