目录
题目描述
设有 n 个正整数 a1…an,将它们联接成一排,相邻数字首尾相接,组成一个最大的整数。
输入描述
第一行有一个整数,表示数字个数 n。
第二行有 n 个整数,表示给出的 n 个整数 ai 。
其中, 1≤n≤20,1≤ai≤10^9。
输出描述
输出一个正整数,表示最大的整数
输入输出样例
示例 1
输入
3
13 312 343
输出
34331213
示例 2
输入
4
7 13 4 246
输出
7424613
参考代码:
方法一:
import os
import sys
from itertools import * #导入itertools使用permutations排列函数
n = int(input())
m = input().split()
a = [] #空列表用来存放排序结果
for i in permutations(m): #用permutations得到s的排列
a.append(''.join(i)) #将排列中的元素连起来,添加到结果列表
print(max(a)) #输出结果列表的最大值
方法二:
n=int(input())
lst=input().split()
for i in range(n-1,0,-1): #起始n-1,终止0,步长-1
for j in range(i):
if lst[j]+lst[i]<lst[i]+lst[j]:
lst[j],lst[i]=lst[i],lst[j]
print(''.join(lst))
join()函数:
语法: 'sep'.join(seq)
参数说明
sep:分隔符,可以为空
seq:要连接的元素序列、字符串、元组、字典
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
返回值:返回一个以分隔符sep连接各个元素后生成的字符串
permutations() 全排列函数:
permutations ( p,r ); 返回p中任意取r个元素做排列的元组的迭代器
for i in permutations([1, 2, 3], 3):
print (i)
输出结果
(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)