欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

郁金香:春天到了,校园里开满了郁金香。 Infinity 经过花坛的时候,常常会停下来数郁金香玩。 Infinity 会分别统计不同颜色的花出现的次数,并把它们按照出现次数从多到少排序...

程序员文章站 2022-03-03 21:56:31
题面描述春天到了,校园里开满了郁金香。 Infinity 经过花坛的时候,常常会停下来数郁金香玩。Infinity 会分别统计不同颜色的花出现的次数,并把它们按照出现次数从多到少排序。这次 Infinity 来到了一个很大的花坛前,和往常一样继续数郁金香。不料,他数到一半时突然忘记数到哪了。 Infinity 不想从头开始数了,你能帮帮他吗?输入数据第一行有一个整数 t (1 ≤ t ≤ 100) ,表示有 t 组数据。对于每组数据:第一行有两个整数 n, m (1 ≤ n, m ≤ 100...

题面描述

春天到了,校园里开满了郁金香。 Infinity 经过花坛的时候,常常会停下来数郁金香玩。Infinity 会分别统计不同颜色的花出现的次数,并把它们按照出现次数从多到少排序。
这次 Infinity 来到了一个很大的花坛前,和往常一样继续数郁金香。不料,他数到一半时突然忘记数到哪了。 Infinity 不想从头开始数了,你能帮帮他吗?

输入数据

第一行有一个整数 t (1 ≤ t ≤ 100) ,表示有 t 组数据。
对于每组数据:第一行有两个整数 n, m (1 ≤ n, m ≤ 100) ,表示花坛的长和宽;接下来 n 行,每行有一个长度为 m 且由大写字母组成的的字符串,表示对应位置出现的花的种类。其中,相同的字母表示相同的花,不同的字母表示不同的花。

输出数据

对于每组数据:第一行输出一个整数 k ,表示花坛中一共有 k 种不同的花。接下来 k 行,每行输出一个整数 x 和一个字符 c ,表示出现了 x 个种类为 c 的花。你需要按花出现的次数从大到小的顺序输出,如果多种花数量相同,请按花的种类从小到大输出。

样例输入

1
3 3
ABC
BBC
CCC

样例输出

3
5 C
3 B
1 A

T = int(input())    
for t in range(T):      
    n,m = list(map(int,input().split()))      
    types = {}      
    for n1 in range(n):          
        rowStr = input()          
        row = [rowStr[i:i+1] for i in range(0,m,1)]          
        for m1 in row:              
            if types.__contains__(m1):                  
                types[m1] += 1              
            else:                  
                types[m1] = 1      
    result = sorted(types.items(),key=lambda x:(-x[1],x[0]))      
    print(len(result))      
    for item in result:          
        print('%d %s'%(item[1],item[0]))  

本文地址:https://blog.csdn.net/tianxiefenxiang/article/details/107635022