Wednesday, February 4, 2015

[LeetCode] LargestNumber

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.
解题思路:
关键就是判断大小的compare func
Python的解法:
class Solution:
    # @param num, a list of integers
    # @return a string
    def largestNumber(self, num):
     newNum = sorted([str(x) for x in num], cmp=self.compare)
     largeNum = ''.join(newNum) or '0'
     return largeNum

    def compare(self, a, b):
     return [1, -1][a + b > b + a]

No comments:

Post a Comment