剪刀石头布

链接: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))])
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值