CSP 201412-1 门禁系统

题目 


法一:

n = int(input())
num = list(map(int, input().split()))
for i in range(len(num)):
    print(num[:i+1].count(num[i]), end=' ')

通过遍历同时切片来实时查看是数字第几次出现


法二:

n = int(input())
num = list(map(int, input().split()))
count_dict = {}
for i in num:
    if i in count_dict:
        count_dict[i] += 1
    else:
        count_dict[i] = 1
for i in num:
    print(count_dict[i], end=' ')

       法二使用了一个字典来记录列表中每个数字的出现次数,它只需要遍历列表一次就可以完成字典的构建。然后再遍历一次列表,通过字典快速查找每个数字的出现次数,而不需要法一对列表进行切片操作,这在处理大型列表时可以提高代码的效率。

猜你喜欢

转载自blog.csdn.net/qq_53083744/article/details/129620032