题目来源:链接
题目描述:
输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。
示例 1:
输入:[10,2]
输出:"102"
实现代码:
def minNumber(self, nums: List[int]) -> str:
def sort_rule(x,y):
a,b = x+y,y+x
if a>b:
return 1
elif a<b:
return -1
else:
return 0
strs = [str(num) for num in nums]
strs.sort(key=functools.cmp_to_key(sort_rule))
return ''.join(strs)
解题思路:
可以用到python的functools.cmp_to_key
自定义一个比较规则,sort函数会在原序列上进行排序