179. 最大数
给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。
示例 1:
输入:[10,2]
输出:210
示例 2:
输入:[3,30,34,5,9]
输出:9534330
说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。
解题思路:首先将nums转化为字符串数组num_str,然后对nums_str进行排序,具体只需要向关键字参数key中传入一个函数cmp_to_key(com)即可。com函数的功能是对数组中的两个元素按照某种规则进行排序。
Python3代码如下:
import functools
class Solution:
def largestNumber(self, nums: List[int]) -> str:
def com(x,y):
if y+x > x+y:
return 1
elif y+x < x+y:
return -1
else:
return 0
nums_str = list(map(str,nums))
nums_str.sort(key=functools.cmp_to_key(com))
string = ''.join(nums_str).lstrip('0')
return string if string else '0'