刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的名字,出生月日。试找出所有生日相同的学生。

时间限制:1000

内存限制:65536

输入

第一行为整数n,表示有n个学生,n ≤ 180。此后每行包含一个字符串和两个整数,分别表示学生的名字(名字第一个字母大写,其余小写,不含空格,且长度小于20)和出生月(1 ≤ m ≤ 12)日(1 ≤ d ≤ 31)。名字、月、日之间用一个空格分隔

输出

每组生日相同的学生,输出一行,其中前两个数字表示月和日,后面跟着所有在当天出生的学生的名字,数字、名字之间都用一个空格分隔。对所有的输出,要求按日期从前到后的顺序输出。 对生日相同的名字,按名字从短到长按序输出,长度相同的按字典序输出。如没有生日相同的学生,输出"None"

样例输入

6

Avril 3 2

Candy 4 5

Tim 3 2

Sufia 4 5

Lagrange 4 5

Bill 3 2

样例输出

3 2 Tim Bill Avril

4 5 Candy Sufia Lagrange

使用微信搜索喵呜刷题,轻松应对考试!

答案:

解析:

【喵呜刷题小喵解析】本题要求找出所有生日相同的学生,并输出他们的名字。首先,我们需要读取每个学生的名字和生日,并存储在一个字典中,字典的键是生日(月和日),值是名字列表。然后,我们遍历字典中的每个生日,如果生日对应的名字列表长度大于1,说明存在生日相同的学生,我们按照题目要求输出他们的名字。最后,如果没有任何学生的生日相同,我们输出"None"。在输出名字时,我们按照题目要求,先按照日期从前到后的顺序输出,然后对生日相同的名字,按照名字从短到长的顺序输出,长度相同的按照字典序输出。我们使用Python的collections模块中的defaultdict函数来创建字典,使得当字典中不存在某个键时,会自动创建一个空列表作为该键的值。在输出名字时,我们使用sorted函数对名字列表进行排序,并使用lambda函数作为排序的key,按照名字从短到长的顺序进行排序,长度相同的按照字典序排序。
创作类型:
原创

本文链接:在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的名字,出生月日。试找出所

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share