此题涉及重复两次计算,只有分值不同。所以最好是可以写个函数,分别传入11和21作为获胜条件。

此外有两个陷阱:

坑点1 : 0 : 0也要输出

坑点2 : 分差 >= 2 才能结束比赛,需要清楚乒乓球规则。

以一位同学的代码为示例:

def calc(seq, win):
    res, h, o = [], 0, 0
     
    for c in seq:
        h += (c == 'W')
        o += (c == 'L')
        if (h >= win or o >= win) and abs(h-o) >= 2:
            res.append(f"{h}:{o}")
            h, o = 0, 0
    res.append(f"{h}:{o}")
    return res
 
import sys
seq = ''.join([line.strip() for line in sys.stdin])
seq = seq[:seq.index('E')] if 'E' in seq else seq
 
print('\n'.join(calc(seq, 11)))
print()
print('\n'.join(calc(seq, 21)))