# 179 Largest Number

Given a list of non-negative integers `nums`, arrange them such that they form the largest number and return it.

Since the result may be very large, so you need to return a string instead of an integer.

Example 1:

``````Input: nums = [10,2]
Output: "210"
``````

Example 2:

``````Input: nums = [3,30,34,5,9]
Output: "9534330"
``````

Constraints:

• `1 <= nums.length <= 100`
• `0 <= nums[i] <= 109`
 `````` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 `````` ``````class LargeNumKey(str): def __lt__(x, y): return x+y > y+x class Solution: def largestNumber(self, nums: List[int]) -> str: num = ''.join(sorted( map(str, nums), key=LargeNumKey)) return '0' if num[0] == '0' else num ''' Using `cmp_to_key` ''' from functools import cmp_to_key class Solution: def largestNumber(self, nums: List[int]) -> str: def cmp(x, y): return -1 if x+y > y+x else 1 num = ''.join(sorted( map(str, nums), key=cmp_to_key(cmp))) return '0' if num[0] == '0' else num``````