美文网首页
把数组排成最小的数

把数组排成最小的数

作者: 小歪与大白兔 | 来源:发表于2018-09-01 18:27 被阅读0次

题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
思路:
将数组中的数字转换成string进行操作比较,比较规定如下
任意两个str1 和str2进行比较
首先连接成
num1 = str1+str2
num2 = str2+str1
转换成int型
① intnum1 > intnum2 str1>str2
② intnum1 < intnum2 str2>str1
③ intnum1==intnum2 str1=str2

# -*- coding:utf-8 -*-
class Solution:
    def PrintMinNumber(self, numbers):
        # write code here
        #把int转换为string
        numstrs = map(str,numbers)
        # 用特定的比较方式进行比较
        numsort = sorted(numstrs,cmp = self.cmp,reverse=True)#降序
        #拍完序之后用join进行连接成结果
        return "".join(i for i in numsort)
    # 指定比较方式
    def cmp(self,n1,n2):
        n12 = n1+n2
        n21 = n2+n1
        return 1 if n12<n21 else -1

s = Solution()
print s.PrintMinNumber([3,5,1,4,2])

相关文章

  • 把数组排成最小的数

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

  • 把数组排成最小的数

    题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{...

  • 把数组排成最小的数

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

  • 把数组排成最小的数

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

  • 把数组排成最小的数

    问题描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例...

  • 把数组排成最小的数

    题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{...

  • 把数组排成最小的数

    题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组...

  • 把数组排成最小的数

    题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组...

  • 把数组排成最小的数

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

  • 把数组排成最小的数

    这道题有两种方法,第一是暴力法,把所有可能都罗列出来,然后一个个比较大小。自己写的暴力法有点复杂且没有全部通过。然...

网友评论

      本文标题:把数组排成最小的数

      本文链接:https://www.haomeiwen.com/subject/qomuwftx.html