链接:https://www.nowcoder.com/questionTerminal/79db907555c24b15a9c73f7f7d0e2471
来源:牛客网
现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
输入描述:
输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代
表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。
输出描述:
输出第1、2行分别给出甲、乙的胜、平、负次数,数字间以1个空格分隔。第3行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有1个空格。如果解不唯
一,则输出按字母序最小的解。
示例1
输入
10
C J
J B
C B
B B
B C
C C
C B
J B
B C
J J
输出
5 3 2
2 3 5
B B
看看楼主C语言风格的python代码。。。。。
N=int(input())
m=n=p=n1=n2=n3=m1=m2=m3=i=0
for i in range(0,N):
a,b=input().split()
i=i+1
if ((a=='C')&(b=='J'))|((a=='J')&(b=='B'))|((a=='B')&(b=='C')):
if a=='C':
m1+=1
elif a=='B':
m2+=1
else:
m3+=1
m+=1
elif ((b=='C')&(a=='J'))|((b=='J')&(a=='B'))|((b=='B')&(a=='C')):
if b=='C':
n1+=1
elif b=='B':
n2+=1
else:
n3+=1
n+=1
else:
p+=1
ma=max(m1,m2,m3)
na=max(n1,n2,n3)
print(m,p,n)
print(n,p,m)
if(ma!=0)&(na!=0):
if(ma==m2):
if(na==n1):
print('B C')
elif(na==n2):
print('B B')
elif(na==n3):
print('B J')
elif(ma==m1):
if(na==n1):
print('C C')
elif(na==n2):
print('C B')
elif(na==n3):
print('C J')
elif(ma==m3):
if(na==n1):
print('J C')
elif(na==n2):
print('J B')
elif(na==n3):
print('J J')
elif(ma!=0)&(na==0):
if(ma==m1):
print('C B')
elif(ma==m2):
print('B B')
elif(ma==m3):
print('J B')
elif(na!=0)&(ma==0):
if(na==n1):
print('C B')
elif(na==n2):
print('B B')
elif(na==n3):
print('J B')
随便放个结果
楼主以后要尽量多练习python了。。。。
p.s.附加一个正版python风格的
win, lose, tie = 0, 0, 0 #甲的勝、負、平次數
Jia, Yi = [0, 0, 0], [0, 0, 0] # B C J count #甲乙勝時出的手勢記錄
num = int(input())
for i in range(num):
string = input()
if string == "C J":
win += 1
Jia[1] += 1
elif string == "J C":
lose += 1
Yi[1] += 1
elif string == "C B":
lose += 1
Yi[0] += 1
elif string == "B C":
win += 1
Jia[0] += 2
elif string == "B J":
lose += 1
Yi[2] += 1
elif string == "J B":
win += 1
Jia[2] += 1
else: # there is a tie
tie += 1
print(win, tie, lose)
print(lose, tie, win)
print("BCJ"[Jia.index(max(Jia))], "BCJ"[Yi.index(max(Yi))])