题目:给出一个非负数的整数组成的列表,例如list=[2,3,410,0],求出由这些数字组成的最大的数
第一:并不是从小到大排序就可以的额,
第二,多个0的只显示一个0,比如001显示为1,0000显示为0
第三,超过两位数的,相同部分和不同部分的比较和排序是要特别考虑的
代码如下:
print "start the Solution method !" class Solution: # @param num, a list of integers # @return a string def largestNumber(self, num): n_len=len(num) if not n_len or n_len<1: return -1 result='' if n_len==1: result=str(num[0]) return result for i in range(n_len): j=i+1 for j in range(n_len): com_flag=self.compareTwoNum(num[i],num[j]) if com_flag==1: num[i],num[j]=num[j],num[i] elif com_flag==2: continue else: return "nums error!" for k in range(n_len): if num[k]==0: k+=1 else: break if k==n_len: result+='0' for i in range(k,n_len): result+=str(num[i]) return result def compareTwoNum(self,num1,num2): tmp1=str(num1)+str(num2) tmp2=str(num2)+str(num1) if tmp1>tmp2: return 1 else: return 2so=Solution() num=[0,0,0] result=so.largestNumber(num) print result
时间: 2024-10-28 20:49:10