把数组排成最小的数

来源:互联网 发布:淘宝机械键盘 编辑:程序博客网 时间:2024/06/10 19:49
把数组排成最小的数

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。

参考代码:

class Solution:    def PrintMinNumber(self, numbers):        # write code here        if numbers == []:            return ''        lstr = [str(x) for x in numbers]        maxl = 0        for s in lstr:            if maxl < len(s):                maxl = len (s)                 dic = {x + x[0]*maxl : x for x in lstr}        key = dic.keys()        key.sort()        out = ''        for x in key:            out+=dic[x]        return int(out)


0 0