python数字位数重排_Python面试题:给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数...
題目:
方法:
class Solution:
def cmp(self,x,y):
return (x > y) - (x < y)
def comper(self,x,nums):
temp = 0
for n in nums:
n = str(n)
temp += self.cmp(int(x+n),int(n+x))
#print(self.cmp(int(x),n))
return temp
def largestNumber(self, nums):
"""
:type nums: List[int]
:rtype: str
"""
temp_list = [str(x) for x in nums]
temp_list.sort(key=lambda x:self.comper(x,nums),reverse=True)
return "".join(temp_list).lstrip("0") or "0"
cmp方法比較x與y的大小,x>y返回1,x<>< p=""> <>
comper方法將傳入的x依次與nums中的元素比較x在前組合,與nums元素在前組合的大小
并且累加cmp返回的值
最后返回主函數,將nums按照帶入comper,得到的值進行倒排
返回得到的結果
如您對本文有疑問或者有任何想說的,請點擊進行留言回復,萬千網友為您解惑!
總結
以上是生活随笔為你收集整理的python数字位数重排_Python面试题:给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle将一个表数据更新时间,Ora
- 下一篇: python报错怎么看_python中的