京东数据分析笔试题

第一题:姓名排序
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]])




#京东##笔试题目##题解#
全部评论
唉,三行SQL能解决的非要这么麻烦,写python
点赞 回复 分享
发布于 2019-08-28 20:27

相关推荐

皮格吉:不,有的厂子面试无手撕,可以试试。都是一边学一边面。哪有真正准备好的时候,别放弃
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
点赞
9
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务