[leetcode sort]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.

对一组数字排序,使其组成的数字最大

思路:排序,不过重新定义排序规则,比如字符串x和字符串y,比较x+y和y+x的大小,如果x+y>y+x,则x>y

1 class Solution:
2     def largestNumber(self, nums):
3         nums = [str(n) for n in nums]
4         nums.sort(cmp=lambda y,x:cmp(x+y,y+x))
5         return ''.join(nums).lstrip('0') or '0'

 

posted @ 2017-03-08 21:06  wilderness  阅读(92)  评论(0编辑  收藏  举报