设有n个正整数,将他们连接成一排,组成一个最大的多位整数.例如:3个整数13,312,343,连成的最大整数为:34331213又如:4个整数7,13,4,246连接成的最大整数为7424613现在给你一个正整数列表L,请你输出用这些正整数能够拼接成的最大整数。
# -*- coding: UTF-8 -*-L = [7, 13, 4, 13, 246]for j in xrange(len(L)-1): for i in xrange(len(L)-j-1): if int(str(L[i])+str(L[i+1])) < int(str(L[i+1])+str(L[i])): #上面的一行是:转成字符串相加,再转成整形比较大小 L[i], L[i+1] = L[i+1], L[i] n_L = [str(i) for i in L]#转成字符串输出print ''.join(n_L)
这个题,我是一个个比较的,第一个第二个转成字符串相加,再转成整形比较。
比如:7,13:变成713和137比较。713大就保持7,13这样的排序。
外层加一个循环,每次一外层循坏就把一个最小的放在相对应的最后。
第一次循环把13放在最后,第二次循环把246放在倒数第二。
就这样。