一、题目
二、解题
关键点就在于,如何对比两个数的大小?(理解为两个数谁应该放在前面),解法是按照顺序拼接两个字母串进行比较,如果a +b串 大于 b+a串,那么a比较大(即题意中理解的a应该放在前面),反之b比较大。
三、尝试与结果
class Solution:
def smaller(self,a,b):
strA = str(a) + str(b)
strB = str(b) + str(a)
if strA > strB :
return False
else:
return True
def largestNumber(self, nums):
resultStr = ""
for i in range(0,len(nums)):
for j in range(i,len(nums)):
if self.smaller(nums[i],nums[j]):
temp = nums[i]
nums[i] = nums[j]
nums[j] = temp
for i in nums:
resultStr = resultStr + str(i)
if (resultStr[0]=='0'):
return '0'
return resultStr
结果:AC