给定一个长度为n的数组nums,数组由一些非负整数组成,现需要将他们进行排列并拼接,每个数不可拆分,使得最后的结果最大,返回值需要是string类型,否则可能会溢出。
数据范围:
,
进阶:时间复杂度
,空间复杂度:)
[30,1]
"301"
[2,20,23,4,8]
"8423220"
[2]
"2"
[10]
"10"
输出结果可能非常大,所以你需要返回一个字符串而不是整数。
from functools import cmp_to_key class Solution: def solve(self , nums: List[int]) -> str: def compare(x,y): if x+y > y+x: return -1 elif x+y < y+x: return 1 return 0 nums_str = list(map(str,nums)) nums_str.sort(key=cmp_to_key(compare)) res = ''.join(nums_str).lstrip('0') return res if res else '0'