#142 · Greedy · Advanced · 130 XP · about 22 min
You are given a list of non-negative whole numbers. Put them in any order and write their digits one after another to make a single number. Write largest_number(nums) that returns the largest number you can make, as a string.
The result never has extra leading zeros, so [0, 0] gives '0'.
largest_number([8, 81, 89, 7]) # returns '898817' largest_number([20, 1, 9]) # returns '9201' largest_number([121, 12]) # returns '12121' largest_number([0, 0, 0]) # returns '0'
For [121, 12], putting 12 first gives 12121, which beats 12112.
1 <= len(nums) <= 10000 <= nums[i] <= 10**9Ready?
Accept the challenge to start writing. A small timer counts the time this page is in view.
Output appears here.