Largest Number
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.
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
提示:
只要新定义一种数字比较方法即可
其实利用python将数字全转换成字符串,处理更简单
(字符串的比较可以非常简单)
代码:
class Solution:
# @param num, a list of integers
# @return a string
def largestNumber(self, num):
s = [str(nn) for nn in num]
nlen = len(num)
for j in range(nlen-1):
for i in range(nlen-1, j, -1):
if s[i-1]+s[i] < s[i]+s[i-1]:
s[i], s[i-1] = s[i-1], s[i]
ans = "".join(s)
if ans[0] == "0": return "0"
return ans