分类:sort
难度:medium
- 最大数
给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。
示例 1:
输入: [10,2]
输出: 210
示例 2:
输入: [3,30,34,5,9]
输出: 9534330
说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。
题解
转化成字符串,然后排序,排序的原则需要注意前序数字较大
原题解链接如下:
https://leetcode-cn.com/problems/largest-number/solution/zui-da-shu-by-leetcode/
代码
class LargerNumKey(str):
def __lt__(x, y):
return x+y > y+x
class Solution(object):
def largestNumber(self, nums):
"""
:type nums: List[int]
:rtype: str
"""
nums = "".join(sorted([str(item) for item in nums],key=LargerNumKey))
return "0" if nums[0]=="0" else nums