Python 程序用于查找 Minion 游戏的得分和获胜者姓名
pythonserver side programmingprogramming更新于 2025/12/21 14:36:17
假设有两个玩家 Amal 和 Bimal。他们正在玩游戏。游戏规则如下 −
两个玩家都有相同的字符串 s。
他们都必须使用 s 的字母制作子字符串。
Bimal 必须制作以辅音开头的单词。
Amal 必须制作以元音开头的单词。
当两个玩家都制作了所有可能的子字符串时,游戏将结束。
现在得分标准如下:玩家在字符串 s 中每次出现子字符串时获得 1 分。我们必须找出这场比赛的获胜者和他的得分。
因此,如果输入为 s = "BANANA",则输出将是 Bimal, 12,因为
| Word : BANANA | |||
| Amal | Bimal(WINNER) | ||
| Substring | Score | Substring | Score |
| A | 3 | B | 1 |
| AN | 2 | N | 2 |
| ANA | 2 | BA | 1 |
| ANAN | 1 | NA | 2 |
| ANANA | 1 | BAN | 1 |
| NAN | 1 | ||
| BANA | 1 | ||
| NANA | 1 | ||
| BANAN | 1 | ||
| BANANA | 1 | ||
| Total 9 | Total 12 | ||
为了解决这个问题,我们将遵循以下步骤 −
- 元音 := 一组元音
- p1 := 0
- p2 := 0
- 对于单词中的每个索引 i 和字符 c,执行
- 如果 c 是元音,则
- p2 := p2 + size of word - i
- 否则,
- p1 := p1 + size of word - i
- 如果 c 是元音,则
- 如果 p1 > p2,则
- 返回 'Bimal', p1
- 否则当 p2 > p1 时,则
- 返回 'Amal', p2
- 否则,
- 返回 'Draw'
示例
让我们看看下面的实现以便更好地理解
def solve(word):
vowels = set('AEIOU')
p1 = 0
p2 = 0
for i, c in enumerate(word):
if c in vowels:
p2 += len(word) - i
else:
p1 += len(word) - i
if p1 > p2:
return 'Bimal', p1
elif p2 > p1:
return 'Amal', p2
else:
return 'Draw'
word = "BANANA"
print(solve(word))
输入
"BANANA"
输出
('Bimal', 12)
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

