题目来源:链接
题目描述:
输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。
示例 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函数会在原序列上进行排序
本文介绍了一种算法,用于解决将数组中的数字拼接成最小可能数值的问题。通过自定义排序规则,利用Python的functools.cmp_to_key函数,实现了对数字字符串的有效排序,最终得到最小拼接数。
511

被折叠的 条评论
为什么被折叠?



