给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。
本题依然是排序算法,怎么排序示例二: str( x ) + str( y ) > str( y ) + str( x ) 则让 x 排列在 y 的前面,但是需要借助cmp_to_key:
https://zhuanlan.zhihu.com/p/77515576
代码:
from functools import cmp_to_key
def func( x, y):
if str( x ) + str( y ) > str( y ) + str( x ):
return -1
elif str( x ) + str( y ) < str( y ) + str( x ):
return 1
else:
return 0
a.sort( key = cmp_to_key( func ) )
if not nums or nums[ 0 ] == 0:
return '0'
else:
return ''.join( map(str,nums) )