n=int(input())
a=input().split()
a=sorted(a,reverse=True)#python自带函数排序,能过大部分,32,321这种不能通过
#print(a)
def bs(a,b):#再次进行首数字相同,不同数位的排序
#print(a,b)
if len(a)==len(b):
return
else:#下面进行补数位
if len(a)<len(b):
while len(a)<len(b):#不足位的不断添加自身
a+=a
#print(a)
a=a[:len(b)]#可能会多添加,在这儿多的去除,让数位与b一样
#print(a)
else:
while len(a)>len(b):
b+=b
#print(b)
b=b[:len(a)]
#print(b)
#print(a,b)
if a>b:
return 1
else:
return -1
for i in range(len(a)-1):
#print(bs(a[i],a[i+1]))
if bs(a[i],a[i+1])==-1:
a[i],a[i+1]=a[i+1],a[i]
#print(a)
print("".join(a))
[NOIP1998 提高组] 拼数 python题解
最新推荐文章于 2024-05-06 00:08:33 发布