python3 代码
class Solution(object):
def printMinNumber(self, nums):
"""
:type nums: List[int]
:rtype: str
"""
if not nums:
return ''
nums = [str(x) for x in nums]
from functools import cmp_to_key
nums = sorted(nums, key=cmp_to_key(lambda x, y: int(x + y) - int(y + x)))
return ''.join(nums).lstrip('0') or '0' # 去除输入中可能存在的0,如果只有'0',则返回'0'
看不懂,为什么现在只能这样写:lambda x, y: int(x + y) - int(y + x)
用了cmp_to_key 写成这样lambda x, y: (x + y) < (y + x) 为什么会错。
可以看看这篇回答 https://www.zhihu.com/question/30389643
因为cmp_to_key要求返回值是数值, 而不是逻辑值