是个传颂厨

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
设有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放在倒数第二。

就这样。

posted on 2016-04-20 14:46  是个传颂厨  阅读(435)  评论(0编辑  收藏  举报