Largest Number
经典的拼凑最大数问题,这个题被讲过太多次了,原则上就是对所有数进行一个从大到小的排序,但这里的大小不是单纯的数字大小而是去比较两个数拼在一起后的值哪个大哪个小,下面是代码
class Solution:
# @param {integer[]} nums
# @return {string}
def largestNumber(self, nums):
lst = sorted(nums, lambda x, y : cmp(str(x) + str(y), str(y) + str(x)))
lst = [str(x) for x in lst]
lst.reverse()
result = int(''.join(lst))
return str(result)
如果非要装逼还可以写成一行
class Solution:
# @param {integer[]} nums
# @return {string}
def largestNumber(self, nums):
return str(int(''.join([str(x) for x in sorted(nums, lambda x, y : cmp(str(y) + str(x), str(x) + str(y)))])))