[LeetCode]179 最大数

题目描述

给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。

示例1

输入: [10,2]
输出: 210

示例2

输入: [3,30,34,5,9]
输出: 9534330

说明
输出结果可能非常大,所以你需要返回一个字符串而不是整数。

思路

  • lamba+cmp

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution(object):
def largestNumber(self, nums):
"""
:type nums: List[int]
:rtype: str
"""
nums = map(str,nums)
comp = lambda a,b: 1 if a+b<b+a else -1
nums.sort(cmp=comp)
nums = ''.join(nums)
if nums[0] == '0':
return '0'
return nums