京东数据分析笔试题
第一题:姓名排序
ZHANG SAN LI SI WANG WU WANG LIU WANG QI ZHANG WU LI WU给出n行姓名,然后根据姓出现次数进行排序,当姓出现次数一样大多的时候,根据输入的顺序排序。
WANG WU WANG LIU WANG QI ZHANG SAN LI SI ZHANG WU LI WU分享一下我的思路,不知道能不能ac
ss=input() arr=[] while ss !='': arr.append(ss) ss=input() dic={} dt={} for i in range(len(arr)): name=arr[i].split(' ')[0] if dic.get(name,0)==0: dic[name]=1 else: dic[name]+=1 for i in range(len(arr)): name=arr[i].split(' ')[0] dt[arr[i]]=dic[name] lis=[] for i in range(len(arr)): lis.append((dt[arr[i]],i)) lis.sort(key=lambda x:(-x[0],x[1])) #lis=sorted(lis,key=lambda x:(x[0],-x[1]),reverse=True) for i in range(len(lis)): print(arr[lis[i][1]])