本站消息

站长简介/公众号


站长简介:高级软件工程师,曾在阿里云,每日优鲜从事全栈开发工作,利用周末时间开发出本站,欢迎关注我的微信公众号:程序员总部,程序员的家,探索程序员的人生之路!分享IT最新技术,关注行业最新动向,让你永不落伍。了解同行们的工资,生活工作中的酸甜苦辣,谋求程序员的最终出路!

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2020-12(12)

2021-01(41)

【剑指Offer】32.把数组排成最小的数(Python实现)

发布于2020-03-08 21:36     阅读(593)     评论(0)     点赞(16)     收藏(2)



题目描述

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。

解法一:cmp_to_key函数

  1. from functools import cmp_to_key
  2. class Solution(object):
  3. def strCmp(self,s1,s2):
  4. if s1+s2>s2+s1:
  5. return 1
  6. return -1
  7. def largestNumber(self, nums):
  8. """
  9. :type nums: List[int]
  10. :rtype: str
  11. """
  12. s=set(nums)
  13. if len(s) == 1 and 0 in s:
  14. return '0'
  15. nums = sorted([str(n) for n in nums], key=cmp_to_key(self.strCmp), reverse = True)
  16. return ''.join(nums)

 

原文链接:https://blog.csdn.net/qq_36936730/article/details/104690684







所属网站分类: 技术文章 > 博客

作者:898shd

链接:https://www.pythonheidong.com/blog/article/248529/ddbd4d5d6bfac395b28a/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

16 0
收藏该文
已收藏

评论内容:(最多支持255个字符)