Largest Number
Given a list of non negative integers, arrange them such that they form the largest number.
(字符串拼接在一起为最大数)
Example:
1. sort & key
看到这个题目最直观的想法是将这些数字首先按照最高位排序,然后是第二高位,依次排序下去。由于每个数字长度不确定,如何进行排序也不是很明确。因此看到了题目给的解法是重载了sort
函数的参数key
的类中的__le__
函数。(因为sort默认的是升序排列,所以只需要重载__le__
即可)
具体实现过程如下:
class LargeNumKey(str):
def __lt__(x, y):
return x+y > y+x
class Solution:
def largestNumber(self, nums: List[int]) -> str:
largest_num = "".join(sorted(map(str, nums), key=LargeNumKey))
return '0' if largest_num[0] == '0' else largest_num