洛谷—p1042乒乓球 python实现

洛谷——p1042乒乓球 python实现

代码1:得分20,有小伙伴可以指点指点吗?与下方的代码2逻辑一致啊。

def get_ratio(score,point):
    dict = {"W":0,"L":0}
    i = 0
    for data in score:
        if data == "E":
            print(str(dict["W"]) +  ":" + str(dict["L"]))
            break
        i +=1
        dict[data] += 1
        if abs(int(dict["W"]) - int(dict["L"])) >= 2:
            if int(max(dict.values())) >= point:
                print(str(dict["W"]) + ":" + str(dict["L"]))
                dict = {"W":0,"L":0}
score = ""
while True:
    temp = input().replace(" ","").upper()
    if 'E' in temp:
        index = temp.index('E')
        score = score + temp[:index+1]
        break
    score = score + temp
get_ratio(score,11)
print()
get_ratio(score,21)

代码2:得分100分
 

s = ""
while True:  # 直接接收输入 E后面全部不要 就是下面截取就可以了
    s += input().strip()
    if "E" in s:
        s = s[:s.find("E") + 1]
        break

w, l = 0, 0  # 用两个计数
for i in s:
    if i == "W":
        w += 1
    if i == "L":
        l += 1
    if i == "E":
        print("%d:%d" % (w, l))
    if w - l >= 2 or l - w >= 2:  # 首先分差得大于等于2才可以哦
        if w >= 11 or l >= 11:
            # 其次就是w或者l必须要有一个大于11才可以 因为11盘为一把
            # 其实这个地方我觉得题目有问题 难道不是打到了11盘只要分差大于等于2不就可以了吗
            #  我用w+l>=11这样提交还出问题了 所以用11 下面21也是一样得
            print("%d:%d" % (w, l))
            w, l = 0, 0  # 每次输出比分之后 是不是就是清空计数啊 下一次继续比呗

w, l = 0, 0  # 11最后E之前还有一些计数 也要清空 
print()
for i in s:
    if i == "W":
        w += 1
    if i == "L":
        l += 1
    if i == "E":
        print("%d:%d" % (w, l))
    if w - l >= 2 or l - w >= 2:
        if w >= 21 or l >= 21:
            print("%d:%d" % (w, l))
            w, l = 0, 0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值