京东数据分析笔试编程题

做来做去只能AC 91%
思路是 每位学生拥有一个号码牌,上面写着【姓出现次数】* N + 录入列表倒序之后的索引
然后按照号码牌的数字倒序排列即符合题意
import sys
count = dict()
names = []
while True:
    line = sys.stdin.readline().strip('')
    if line == '':
        break
    names.append(line)
    x,m = line.split(' ')
    if x in count:
        count[x] += 1
    else:
        count[x] = 1
N = len(names)
if N == 0:
    sys.stdout.write(''+'\n')
else:
    names = names[::-1]
    newnames = []
    i = 0
    while i<N:
        name = names[i]
        x,m = name.split(' ')
        newnames.append([name,count[x]*N+i])
        i += 1
    newnames.sort(key=lambda x:x[1],reverse=True)
    for res in newnames:
        sys.stdout.write(str(res[0])+'\n')
时间复杂度应该是O(N),空间复杂度应该也不高吧
改来改去都只有91%,有大神看看这思路有什么问题嘛?
#京东##笔试题目##数据分析师#
全部评论
思路很清晰,那个编码的方式很6啊。就是觉得可以不用做names = names[::-1]这一步,多少应该会增大时间和空间复杂度的,直接将newnames.append([name,count[x]*N+i])改成newnames.append([name,count[x]*N+N-i])就好了
2 回复 分享
发布于 2019-08-25 10:11
原题是啥 能叙述一下🐎
点赞 回复 分享
发布于 2019-08-27 02:40
弱弱地问一句AC91%是什么意思呀?提交代码的时候能看见?
点赞 回复 分享
发布于 2019-08-26 22:14
一直是73😂😂不知道哪里有问题
点赞 回复 分享
发布于 2019-08-24 21:22
我也是一直91%,没找到yuajyin
点赞 回复 分享
发布于 2019-08-24 21:15

相关推荐

来个大佬救一下,为上投了都是石沉大海了,没实习经历的话怕秋招直接进不了面。什么实习这么难找,基本
心态爆炸了:现在正式的岗位都少,实习基本不咋招的,除了大厂,中小企业其实没那么多岗位需求,就算是有,大多都是招一两个廉价劳动力,同时,他们也会希望你一来就能干活的,没时间培训你,就让你了解公司的项目,你了解完就可以开始干活。再者是,很多低质量的实习其实用处没有那么大的。我去年也是找实习找到破防,最后去了一家深圳的小公司实习,工作对我来说很简单,甚至不如我在学校做的项目,秋招的时候,这段实习经历也并没有帮上什么忙,投递简历,依旧非常低的回复率。低回复率是常态,尤其是找实习,找不到,那就把重心放在优化自己的简历和项目,多看八股文,锻炼自己的面试能力,多看别人的面经,自己模拟面试,等秋招的时候,只要有那么寥寥几次,好好抓住那几次机会。
点赞 评论 收藏
分享
frutiger:逆天,我家就安阳的,这hr咋能说3k的,你送外卖不比这工资高得多?还说大厂来的6k,打发叫花子的呢?这hr是怎么做到说昧良心的话的
找工作时遇到的神仙HR
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
36
分享

创作者周榜

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