解题思路:这道题的关键就在于如何重新定义排序规则,对待排序的字符串x
和y
,如果(x+y)
构成的字符串小于(y+x)
构成的字符串,自然x
应当排在y
前面,反之亦然
class Solution:
def minNumber(self, nums: List[int]) -> str:
def cmp(x, y):
if (x+y) > (y+x):
return 1
elif (x+y) < (y+x):
return -1
else:
return 0
import functools
nums = [str(x) for x in nums]
nums.sort(key=functools.cmp_to_key(cmp))
return ''.join(nums)