题解 | #成绩排序#

成绩排序

https://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b

num=int(input())
order=int(input())
listn=[str(i) for i in range(num)]
listg=[g for g in range(num)]
for i in range(num):
    inp=input().split(' ')
    listn[i]=inp[0]
    listg[i]=int(inp[-1])

for j in range(len(listg)):
    for k in range(len(listg)-1-j):
        if listg[k]>listg[k+1]:
            tmp=listg[k]
            listg[k]=listg[k+1]
            listg[k+1]=tmp

            tmp2=listn[k]
            listn[k]=listn[k+1]
            listn[k+1]=tmp2

if order==0:
    flag=0
    count=0
    for i in range(num-1):
        if count:
            count-=1
            continue
        if listg[i]==listg[i+1]:
            for j in range(i,num-1):
                if listg[j]==listg[j+1]:
                    count+=1
                else:
                    break
            #反转名字顺序并替代原来的序列
            listn[i:i+count+1]=listn[i:i+count+1][::-1]
            #首层循环通过if count/count-=1 跳到i+count+1


    for i in range(num):
        print(listn[::-1][i],listg[::-1][i],sep=' ')
if order==1:
    for i in range(num):
        print(listn[i],listg[i],sep=' ')

全部评论

相关推荐

不愿透露姓名的神秘牛友
12-04 04:26
小红书 内容风控工程 (n+3) * 16 硕士985
点赞 评论 收藏
分享
10-22 12:03
山东大学 Java
程序员小白条:26届一般都得有实习,项目可以随便写的,如果不是开源社区的项目,随便包装,技术栈也是一样,所以本质应该找学历厂,多投投央国企和银行,技术要求稍微低一点的,或者国企控股那种,纯互联网一般都得要干活
应届生简历当中,HR最关...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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