查找在Python中以二进制字符串形式给出分数的游戏的获胜者
假设我们有一个二进制字符串表示排球比赛的得分,我们必须根据以下条件找到比赛的获胜者:
有两支球队互相比赛,得分最高15分的球队将是获胜者,除非两支球队均达到14分。
当两支球队当时都达到14分时,保持领先2分的球队将成为获胜者。
从给定的二进制字符串中,0表示团队失去积分,而1表示团队赢得积分。我们必须检查球队是赢还是输。
因此,如果输入像分数=“ 1001100110111001110011011”,那么输出将是团队获胜
为了解决这个问题,我们将遵循以下步骤-
score_cnt:= [0,0]
对于范围在0到分数范围内的我,执行
score_cnt [0]:= 0
score_cnt [1]:= 0
从循环中出来
返回“团队获胜”
返回“团队迷路”
pos:=(分数[i])的ASCII-('0')的ASCII
score_cnt [pos]:= score_cnt [pos] + 1
如果score_cnt [0]与n和score_cnt [1] − n-1相同,则
如果score_cnt [1]与n相同且score_cnt [0] <n-1,则
如果score_cnt [0]与n-1相同,而score_cnt [1]与n-1相同,则
我:=我+ 1
对于我在分数范围内的我,做
如果score_cnt [0]> score_cnt [1],则
除此以外,
返回“团队迷路”
返回“团队获胜”
pos:=(分数[i])的ASCII-('0')的ASCII
score_cnt [pos]:= score_cnt [pos] + 1
如果| score_cnt [0]-score_cnt [1] | 与2相同
示例
让我们看下面的实现以更好地理解-
def predictWinner(score, n):score_cnt = [0,0]
for i in range(len(score)):
pos = ord(score[i]) - ord('0')
score_cnt[pos] += 1
if (score_cnt[0] == n and score_cnt[1] < n - 1):
return "Team lost"
if (score_cnt[1] == n and score_cnt[0] < n - 1):
return "Team won"
if (score_cnt[0] == n - 1 and
score_cnt[1] == n - 1):
score_cnt[0] = 0
score_cnt[1] = 0
break
i += 1
for i in range(i, len(score)):
pos = ord(score[i]) - ord('0')
score_cnt[pos] += 1
if (abs(score_cnt[0] - score_cnt[1]) == 2):
if (score_cnt[0] > score_cnt[1]):
return "Team lost"
else:
return "Team won"
score = "1001010101111011101111"
n = 15
print(predictWinner(score, n))
输入值
"1001010101111011101111"
输出结果
Team won
以上是 查找在Python中以二进制字符串形式给出分数的游戏的获胜者 的全部内容, 来源链接: utcz.com/z/330995.html