179.最大数-排序 sort() 自定义排序(leetcode)

给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。

 

本题依然是排序算法,怎么排序示例二: 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) )

原文地址:https://www.cnblogs.com/ChevisZhang/p/12498735.html