179. Largest Number

 

 

Given a list of non negative integers, arrange them such that they form the largest number.

 

For example, given [3, 30, 34, 5, 9], the largest formed number is 9534330.

 

Note: The result may be very large, so you need to return a string instead of an integer.

数据组合排序使得组合后的数最大

思路:

str(a)+str(b)>str(b)+str(a)就选择ab否则是ba

sorted(iterable, cmp=None, key=None, reverse=False)

注意python3中没有cmp

 

class Solution:
    # @param {integer[]} nums
    # @return {string}
    
def largestNumber(self, nums):
        comp=lambda a,b:1 if a+b>b+a else -1 if a>b<b+a else 0
        num=sorted([str(x) for x in nums],cmp=comp,reverse=True)
        ans=''.join(num).lstrip('0')
        return ans or 0

 

posted @ 2018-03-09 14:34  婆山岭下  阅读(112)  评论(0)    收藏  举报