classSolution:deflargestNumber(self, nums):"""
:type nums: List[int]
:rtype: str
"""
nums =[str(x)for x in nums]
maxL =max([len(x)for x in nums])
nums.sort(key=lambda x: x*(maxL//len(x)+1), reverse=True)if nums and nums[0]=='0':return'0'return''.join(nums)
classSolution(object):deflargestNumber(self, nums):"""
:type nums: List[int]
:rtype: str
"""defmysort(list1):
maxL=len(max(list1))
tmp =[]for s in list1:
ls=len(s)if ls==maxL:
tmp.append([s,s])else:
sortK = s+s[0]*(maxL-ls)iflen(sortK)>=2and sortK[-2]> sortK[-1]:
f=0for index inrange(len(tmp)):if tmp[index][1]==sortK:
f=1breakif f==1:
tmp.insert(index,[s,sortK])else:
tmp.append([s,sortK])else:
tmp.append([s,sortK])
a=sorted(tmp,key=lambda tmp:tmp[1],reverse=True)
strkey=''for k in a:
strkey+=k[0]return strkey
res=''
dict1={}
zeros=0for i inrange(1,10):
dict1[i]=[]for n in nums:if n==9:
res+='9'elif n==0:
zeros+=1else:
dict1[int(str(n)[0])].append(str(n))for j inrange(9,0,-1):if dict1[j]==[]:continue
res+=mysort(dict1[j])
res=res+'0'*zeros
return'0'if res[0]=='0'else res