Python 程序用于查找 Minion 游戏的得分和获胜者姓名
pythonserver side programmingprogramming
假设有两个玩家 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)