一、最初代码

#!/usr/bin/env python
# -*-coding:utf-8 -*-
'''
@File    :   1018.py
@Time    :   2020/03/24 12:51:44
@Author  :   Schiller Xu 
@Version :   1.0
@Contact :   schillerxu@qq.com
@License :   (C)Copyright 2020-2021, SchillerXu
@Desc    :   None
'''

n = int(input())
data = [input() for i in range(n)]
w = 0
f = 0
# 甲出剪刀石头布赢的次数
w_c = 0
w_j = 0
w_b = 0
# 乙出剪刀石头布赢的次数
f_c = 0
f_j = 0
f_b = 0


for i in data:
    if i[0] == 'C':
        if i[2] == 'J':
            w += 1
            w_c += 1
        elif i[2] == 'B':
            f += 1
            f_b += 1
    elif i[0] == 'J':
        if i[2] == 'B':
            w += 1
            w_j += 1
        elif i[2] == 'C':
            f += 1
            f_c += 1
    else:
        if i[2] == 'C':
            w += 1
            w_b += 1
        elif i[2] == 'J':
            f += 1
            f_j += 1

p = n-w-f
print(f"{w} {p} {f}")
print(f"{f} {p} {w}")

if w_b >= w_c:
    if w_b >= w_j:
        print('B', end=' ')
    else:
        print('J', end=' ')
else:
    if w_c >= w_j:
        print('C', end=' ')
    else:
        print('J', end=' ')

if f_b >= f_c:
    if f_b >= f_j:
        print('B')
    else:
        print('J')
else:
    if f_c >= f_j:
        print('C')
    else:
        print('J')

二、改进点

改进点如下:

  1. 主要原因:input改为sys.stdin.readline,input自动把读入的字符串去掉"\n",在大数据量下两者差别比较大;
  2. 只统计甲赢的次数和平的次数,甲赢的次数就是乙输的次数。

三、最终代码

#!/usr/bin/env python
# -*-coding:utf-8 -*-
'''
@File    :   1018-1.py
@Time    :   2020/07/10 10:42:43
@Author  :   Schiller Xu 
@Version :   1.0
@License :   (C)Copyright 2020-2021, SchillerXu
@Desc    :   None
'''

import sys

n=int(sys.stdin.readline())
#平的次数
p=0
#甲赢的次数
w=0
# 甲出剪刀石头布赢的次数
w_c = 0
w_j = 0
w_b = 0
# 乙出剪刀石头布赢的次数
f_c = 0
f_j = 0
f_b = 0


for _ in range(n):
    s=sys.stdin.readline()
    #s=input()
    if s[0]==s[2]:
        p+=1
    else:
        if s[0]=='C':
            if s[2]=='J':
                w+=1
                w_c+=1
            else:
                f_b+=1
        elif s[0]=='J':
            if s[2]=='B':
                w+=1
                w_j+=1
            else:
                f_c+=1
        else:
            if s[2]=='C':
                w+=1
                w_b+=1
            else:
                f_j+=1

print(w,p,n-p-w)
print(n-p-w,p,w)
if w_b >= w_c:
    if w_b >= w_j:
        print('B', end=' ')
    else:
        print('J', end=' ')
else:
    if w_c >= w_j:
        print('C', end=' ')
    else:
        print('J', end=' ')

if f_b >= f_c:
    if f_b >= f_j:
        print('B')
    else:
        print('J')
else:
    if f_c >= f_j:
        print('C')
    else:
        print('J')
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐