PAT 1038 统计同成绩学生 python (无超时)

1038 统计同成绩学生(20)(20 分)

本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出。

输入格式:

输入在第1行给出不超过10^5^的正整数N,即学生总人数。随后1行给出N名学生的百分制整数成绩,中间以空格分隔。最后1行给出要查询的分数个数K(不超过N的正整数),随后是K个分数,中间以空格分隔。

输出格式:

在一行中按查询顺序给出得分等于指定分数的学生人数,中间以空格分隔,但行末不得有多余空格。

输入样例:

10
60 75 90 55 75 99 82 90 75 50
3 75 90 88

输出样例:

3 2 0

作者: CHEN, Yue
单位: PAT联盟
时间限制: 250ms
内存限制: 64MB
代码长度限制: 16KB

问题分析:
一开始想用count,但是感觉遍历次数太多会超时,试了一下果然是
然后改用字典装成绩,同时计数,虽然写的蠢了点,但是可以用
PS:这套题最大的敌人是超时啊!!!

扫描二维码关注公众号,回复: 3156382 查看本文章

代码:

input()
n = input().split()
x = input().split()
score = {}
rst = []
for i in x[1:]:
    score[i] = 0
for i in n:
    if i in score:
        score[i] += 1
for i in x[1:]:
    rst.append(str(score[i]))
print(' '.join(rst))

猜你喜欢

转载自blog.csdn.net/qq_42800234/article/details/82351746