试题编号: | 201412-1 |
试题名称: | 门禁系统 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: | 问题描述 涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况。每位读者有一个编号,每条记录用读者的编号来表示。给出读者的来访记录,请问每一条记录中的读者是第几次出现。 输入格式 输入的第一行包含一个整数n,表示涛涛的记录条数。 输出格式 输出一行,包含n个整数,由空格分隔,依次表示每条记录中的读者编号是第几次出现。 样例输入 5 样例输出 1 1 2 3 1 评测用例规模与约定 1≤n≤1,000,读者的编号为不超过n的正整数。 |
问题链接:CCF201412-1 门禁系统
问题分析
需要的操作只有两个主要的:一是当读者不存在时,存储读者信息,并且记读者来了一次。
二是读者已经来过,则只需要将读者来的次数信息加上1即可
具体实现请看下面代码
满分代码
n=int(input())
reader=input().split()
#be用来存储读者进出几次的信息
#out存储输出的信息。因为字典没有顺序,所以才需要增加这一个变量
be={}
out=[]
for i in range(n):
#如果该读者从未出现过,那么就在out中+1
if reader[i] not in be:
be[reader[i]]=1
out+=[1]
else:
be[reader[i]]+=1
out+=[be[reader[i]]]
#输出
print(out[0],end='')
for i in range(1,n):
print('',out[i],end='')