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
  • 如果 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)

相关文章