• PAT 锤子剪刀布


    大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:

    现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。

    输入格式:

    输入第 1 行给出正整数 N( ≤ 105 ),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表锤子,J 代表剪刀,B 代表布,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。

    输出格式:

    输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以 1 个空格分隔。第 3 行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有 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
    dirt={'C':'J','J':'B','B':'C'}
    t=int(input())
    c,d,g=0,0,0
    e,f=[],[]
    for i in range(t):
        a,b=input().split()
        if dirt[a]==b:
            c+=1
            e.append(a)
        elif dirt[b]==a:
            d+=1
            f.append(b)
        else:
            g+=1
    e.sort()
    f.sort()
    k,m=0,0
    if e:
        k=max(e,key = e.count)
    else:
        k='B'
    if f:
        m=max(f,key = f.count)
    else:
        m='B'
    print(c,g,t-c-g)
    print(d,g,t-d-g)
    print(k,m)

    这道题目可能需要注意的一点就是如果甲或者乙一次都没赢,那他获胜次数最多的手势就是B

  • 相关阅读:
    如何高效学习读书笔记
    对Java虚拟机理解
    对Java虚拟机的认识和理解
    翻译一篇关于jedis的文章
    Java 异常机制
    spring boot基础 入门
    每天记录一个设计模式之建造者模式
    如何在mybatis 中使用In操作
    Git 基本命令有哪些
    JavaScript
  • 原文地址:https://www.cnblogs.com/andrew3/p/12636280.html
Copyright © 2020-2023  润新知