频道栏目
首页 > 程序开发 > Web开发 > Python > 正文
Python面试题:给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数
2018-07-27 14:40:45         来源:ZJRN1027的博客  
收藏   我要投稿

题目:

\

方法:

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

comper方法将传入的x依次与nums中的元素比较x在前组合,与nums元素在前组合的大小

并且累加cmp返回的值

最后返回主函数,将nums按照带入comper,得到的值进行倒排

返回得到的结果

点击复制链接 与好友分享!回本站首页
上一篇:python学习之InPut()和While循环知识讲解
下一篇:python简单面试题:输入某年某月某日,判断这一天是这一年的第几天
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站