Python程序-查找小伙伴游戏的得分及获胜者名字

Python程序-查找小伙伴游戏的得分及获胜者名字

假设有两个玩家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 + word中的大小-i
    • 否则,
      • p1 := p1 + 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)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程