气球升起来

程序设计竞赛时,赛场升起各色气球多么激动人心呀!志愿者送气球忙得不亦乐乎,观战的某人想知道目前哪种颜色的气球送出最多。

输入格式:

测试数据有多组,处理到文件尾。每组数据先输入一个整数n(0<n≤5000)表示分发的气球总数。接下来输入n行,每行一个表示颜色的字符串(长度不超过20且仅由小写字母构成)。

输出格式:

对于每组测试,输出出现次数最多的颜色。若出现并列的情况,则只需输出ASCII码值最小的那种颜色。

输入样例:

3
pink
red
pink

输出样例:

pink

 代码实现

def sho():#处理输入
    n = int(input())#要读取多少次
    hk = []
    while n > 0:#循环读取n次
        f = input()
        hk.append(f)
        n -= 1
    f = gh(hk)#返回各种颜色的气球和相应个数的字典
    d = dg(f)#判断最多个数颜色的气球的颜色名
    print(d)#输出结果


def gh(hk):
    fg = {}#创建存储各种颜色的气球与个数的字典
    jk = set(hk)#对读取的输入列表去重,得到气球的颜色种类列表
    sd = 0
    for i in jk:#循环气球的颜色列表
        fg[i] = 0#初始化该种颜色的气球个数
        for k in hk:#在获得的输入列表中判断该颜色的气球个数
            if i == k:
                fg[i] += 1#增加个数
    return fg#返回各种气球的颜色与个数的字典


def dg(f):#判断气球的颜色个数最多的颜色的气球的个数
    kl = []
    n1 = 0#用来存储最多个数颜色的气球的个数
    n2 = ""#用来存储最多个数颜色的气球的颜色名
    for i, n in f.items():#循环该字典
        if n > n1:#判断颜色个数大小,筛选出最多个数的颜色
            n1 = n
            n2 = i
    for i, n in f.items():#判断是否有相同的最多个数颜色
        if f[i] == n1:
            kl.append([i, n1])

    if len(kl) == 0:#如果没有直接返回n2
        return n2
    elif len(kl) > 0:#如果有就判断这些颜色名的ASCII值,返回最小的
        for i in kl:
            if i[0] < n2:
                n2 = i[0]
    return n2


sho()

-------------------------------------------------------

在PTA上会报错,在pycharm上可以运行,求找错   (0 > < 0 !)~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值