【Python】计算游戏得分enumerate()
创始人
2024-11-21 17:34:49
0次

一、题目

Kevin and Stuart want to play the 'The Minion Game'.

Game Rules

  • Both players are given the san string S.
  • Both players have to make substrings using the letters of the string S.
  • Stuart has to make words starting with consonants.
  • Kevin has to make words starting with vowels.
  • The game ends when both players have made all possible substrings.

Scoring

A player gets +1 point for each occurrence of the substring in the string S.

For Example:

String S = BANANA

Kevin's vowel beginning word = ANA

Here, ANA occurs twice in BANANA. Hence, Kevin will get 2 Points.

S = BANANA
StuartKevin
WordsScoreWordsScore
B1A3

N

2AN2
BA1ANA2
NA2ANAN1
BAN1ANANA1
NAN1
BANA1

NANA1
BANAN1
BANANA1

Your task is to determine the winner of the game and their score.

Input Format

A single line of input containing the string S.

Note: The string S will contain only uppercase letters:[A - Z]. 

Sample Input

BANANA

Sample Output

Stuart 12

 Note: Vowels are only defined as AEIOU.

二、代码

def minion_game(string):     vowels = {'A', 'E', 'I', 'O', 'U'}     stuart_score = 0     kevin_score = 0      for i, char in enumberate(string):         if char in vowels:             kevin_score += len(string) - i         else:             stuart_score += len(string) - i              if stuart_score > kevin_score:         print("Stuart", stuart_score)     elif kevin_score > stuart_score:         print("Kevin", kevin_score)     else:         print("Draw")   if __name__ == '__main__':     s = input()     minion_game(s)

三、解答

for i, char in enumerate(string):

使用 enumerate() 函数遍历字符串 string。

enumerate() 会返回每个字符及其索引(从0开始)。

if char in vowels:     kevin_score += len(string) - i else:     stuart_score += len(string) - i

1、如果当前字符 char 是元音(在 vowels 集合中),则计算 kevin_score 。由于每个元音字符都可以作为以子字符串的其实字符,Kevin 获得的分数是剩余字符串长度 (len(string) - i)

2、如果当前字符不是元音(即辅音),则计算 stuart_score。 同样,由于每个辅音字符都可以作为以辅音开头的子字符串的起始字符,Stuart 获得的分数是剩余字符串长度。

if stuart_score > kevin_score:     print("Stuart", stuart_score) elif kevin_score > stuart_score:     print("Kevin", kevin_score) else:     print("Draw")

在循环结束后,比较 stuart_score 和 kevin_score。 如果 Stuart 的得分更高,打印 "Stuart" 和得分;如果 Kevin 的得分更高,打印 "Kevin" 和得分;如果两者得分相同,打印 "Draw"。

 四、enumerate()

enumerate() 函数在 Python 中是一个内置函数,它的作用是将一个可迭代对象(如列表、元组、字符串等)组合为一个索引序列,同时返回元素和它的索引。在工作中,enumerate() 可以带来以下好处:

1、方便迭代:在遍历列表或其他序列时,enumerate() 允许你同时获得元素的索引和值,这使得处理元素时可以更方便地引用其位置。

2、索引访问:当你需要在循环中使用元素的索引时(例如,作为字典的键或在另一个列表中访问元素),enumerate() 提供了一个简洁的方式来做到这一点。

3、代码可读性:使用 enumerate() 可以使代码更加清晰和易于理解,因为你不需要手动维护一个索引计数器。

4、性能:在某些情况下,使用 enumerate() 可能比手动管理索引更高效,尤其是在处理大型数据集时。

5、功能强大:enumerate() 还允许你指定起始索引,如果你想从非零索引开始计数,这非常有用。

示例:

for index, value in enumerate(['a', 'b', 'c']):     print(index, value)

输出:

0 a

1 b

2 c

  • 在这个示例中, enumerate() 同时提供了列表中每个元素的索引(index)和值(value),使得遍历和处理变得非常简单。
  • 在工作中,enumerate() 特别使用于需要跟踪元素位置或需要根据元素位置执行不同操作的场景。例如,在处理文件中的数据行时,你可能需要知道当前处理的是第几行数据,这时使用 enumerate() 就非常方便。

相关内容

热门资讯

推荐十款!亚盈开挂功能方法,亚... 推荐十款!亚盈开挂功能方法,亚盈真是存在有开挂方法1、完成亚盈辅助器v3.3的残局,帮助玩家取得所有...
科技分享!五龙捕鱼开挂功能神器... 科技分享!五龙捕鱼开挂功能神器,五龙捕鱼本来有开挂神器1、在五龙捕鱼插件功能辅助器技巧中,中转单元十...
玩家必备科普!新九天辅助器功能... 玩家必备科普!新九天辅助器功能方法,新九天其实存在有辅助器方法1、新九天辅助器安装包、新九天辅助器2...
教程攻略!永乐透视功能方法,永... 教程攻略!永乐透视功能方法,永乐竟然有透视方法1、永乐辅助器安装包、永乐辅助器2、分享自己喜欢的永乐...
玩家必备科普!朋友安徽麻将透视... 玩家必备科普!朋友安徽麻将透视挂功能神器,朋友安徽麻将好像有透视挂神器1、每一步都需要思考,不同水平...
最新通报!东游三张牌辅助器功能... 最新通报!东游三张牌辅助器功能方法,东游三张牌本来有辅助器方法1、游戏颠覆性的策略玩法,独创攻略技巧...
玩家必看攻略!捕鱼联盟辅助器功... 玩家必看攻略!捕鱼联盟辅助器功能技巧,捕鱼联盟原来存在有辅助器技巧1、不需要AI权限,帮助你快速的进...
每日必看推荐!酷乐游戏透视挂功... 每日必看推荐!酷乐游戏透视挂功能脚本,酷乐游戏确实是有透视挂脚本1、下载好酷乐游戏透视辅助下载之后点...
科技介绍!游游棋牌开挂功能攻略... 科技介绍!游游棋牌开挂功能攻略,游游棋牌竟然真的是有开挂攻略游游棋牌辅助器是一种具有地方特色的麻将游...
今日头条!天酷大厅开挂功能工具... 今日头条!天酷大厅开挂功能工具,天酷大厅确实是真的有开挂工具天酷大厅能透视中分为三种模型:天酷大厅模...