python3 sort 排序 自定义函数 cmp 重写__lt__即可

 

179. 最大数

难度中等

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

示例 1:

输入: [10,2]
输出: 210

示例 2:

输入: [3,30,34,5,9]
输出: 9534330

说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。

class LargerNumKey(str):
    def __lt__(x, y):
        return x+y < y+x


class Solution(object):
    def largestNumber(self, nums):
        """
        :type nums: List[int]
        :rtype: str
        """
        str_nums = sorted([str(n) for n in nums], key=LargerNumKey, reverse=True)       
        ans = "".join(str_nums)
        if ans == "0"*len(ans):
            return "0"
        return ans

  

posted @ 2020-04-01 19:21  bonelee  阅读(2196)  评论(0编辑  收藏  举报