京东数据分析笔试题

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

创作者周榜

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