10205000505 edited 3 年前

Comments

哈密顿的TSP

import sys
import re
L=[1,2,3,[4,5,6,[7,2,57],34,446,45],523,46]
def add(L):
for i in range(len(L)-1,-1,-1):
# print(i)
if L[i]==”]”:
L[:i]=[x+1 if x!=”[” and x!=”]” else x for x in L[:i]]
elif L[i]==”[“:
L[:i]=[x-1 if x!=”[” and x!=”]” else x for x in L[:i]]
return L
def cha(x):
try:
return int(x)
except ValueError:
y=x
x=x.replace(“[“,”“)
x=x.replace(“]”,”“)
if x:
return int(x)
else:
return y
def sp(b):
L=[]
for i in b.split(“,”):
if “[” in i and “]” not in i:
L.append(“[“)
L.append(cha(i))
elif “]” in i and “[” not in i:
L.append(cha(i))
L.append(“]”)
elif “[” and “]” in i:
L.append(“[“)
L.append(cha(i))
L.append(“]”)
else:
L.append(cha(i))
return L
b=sp(str(L))
a=list(map(cha,b))
a=add(a)
a=[i for i in a if i !=”[” and i!=”]”]
for i in a:
print(i,end=” “)

10205000505

举重比赛中需要记录每位参赛选手的成绩,现假设每位参赛选手可以举重任意多次,最后每位选手成绩以最高的成绩为准,现给定每次举重的选手以及其举重的成绩,输出最后的榜单(成绩高的优先输出,相同成绩则按照名字的字典顺序进行输出)。
一个整数 n 代表接下来有 n 行举重记录

接下来 n行每行由一个字符串和整数,以空格间隔,表示选手的名字和成绩。
每行输出一个选手的名字以及他的成绩,以空格间隔
input
3
Phyllis 106
Sherry 115
Tom 103
output
Sherry 115
Phyllis 106
Tom 103