题解 | #成绩排序#

成绩排序

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=' ')

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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