剑指offer第32题:把数组排成最小的数及关于list.sort()和sorted( Iterable object )函数的相关知识
2)key参数/函数
>>> student_tuples = [ ('john', 'A', 15), ('jane', 'B', 12),('dave', 'B', 10) ]
4)cmp函数:python2.4前,sorted()和list.sort()函数没提供key参数,但提供cmp参数指定比较函数。此方法在其他语言中也普遍存在。在python2.x中cmp参数指定的函数需要2个参数,然后返回负数表示小于,0表示等于,正数表示大于,用来进行元素间的比较。例如:
from functools import cmp_to_key
class Solution:
def comp(self,num1,num2):
t = str(num1)+str(num2)
s = str(num2)+str(num1)
if t>s:
return 1
elif t<s:
return -1
else:
return 0
def PrintMinNumber(self,numbers):
# write code here
if not numbers:
return ""
numbers = list(map(str, numbers))
print('numbers:',numbers)
temnumbers=sorted(numbers,key=cmp_to_key(self.comp))
print('temnumbers:',temnumbers)
temnumbers=int(''.join(str(x) for x in temnumbers))
return temnumbers
#return int(''.join(x for x in numbers))
s=Solution()
s1=s.PrintMinNumber([34,3,31])
print(s1)
剑指offer第32题:把数组排成最小的数及关于list.sort()和sorted( Iterable object )函数的相关知识的更多相关文章
- 剑指offer(32)把数组排成最小的数
题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 题目分析 主 ...
- 【剑指Offer】32、把数组排成最小的数
题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. ...
- 剑指Offer - 九度1504 - 把数组排成最小的数
剑指Offer - 九度1504 - 把数组排成最小的数2014-02-06 00:19 题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输 ...
- 剑指Offer:面试题33——把数组排成最小的数(java实现)(未完待续)
问题描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 思路1: ...
- 《剑指Offer》算法题——“旋转数组”的最小数字
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个非递减序列的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数 ...
- 剑指Offer - 九度1386 - 旋转数组的最小数字
剑指Offer - 九度1386 - 旋转数组的最小数字2013-11-24 01:57 题目描述: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转 ...
- 《剑指offer》— JavaScript(32)把数组排成最小的数
把数组排成最小的数 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为3213 ...
- 剑指offer 面试32题
面试32题: 题目:从上到下打印二叉树 题:不分行从上到下打印二叉树 解题代码: # -*- coding:utf-8 -*- # class TreeNode: # def __init__(sel ...
- 牛客网剑指offer第13题——调整数组顺序使得奇数位于偶数前面
题目来源:剑指offer 题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变 ...
随机推荐
- git checkout branch
git fetch origin feature/banch1:feature/banch1 git checkout feature/banch1 git branch -u origin/feat ...
- Python自学:第三章 确定列表长度
>>> cars = ["bmw", "audi", "toyota", "subaru"] > ...
- Lab 10-3
This lab includes a driver and an executable. You can run the executable from anywhere, but in order ...
- 使用npm私有服务器保存公司内部强业务类型组件(三):关于业务性组件的一点思考
编写业务性组件最难的地方不在于技术,而在于沟通, 1:前端将业务给封装了起来,必然导致产品在设计的时候多了一层考虑,在新增功能的时候 他要考虑这个功能是不是在其他项目也需要,如果不是的话,就不应该放在 ...
- vue引用ionic4
现在的Ionic4已经开始支持VUE和REACT了.个人之前开发用IONIC.现在用VUE开发还是想用IONIC.刚好 也是支持VUE了. 在vue的项目里安装ionic依赖 npm install ...
- iOS调试踩过的坑 以及instruments使用指南
1. 低版本的XCode工程中包含的lib,在高版本的XCode中会编译错误,提示找不到库,故需要恢复libC++库到原位置上,参考 https://github.com/devdawei/libst ...
- linux命令:使用less从后向前查看日志信息
线上出问题的时候,我们常用tail-n 或者tail-f或者grep或者vicat等各种命令去查看异常信息,但是日志是在不停地刷屏,tail是动态的在变的,我们往往期望从日志最后一行往前一页一页的翻页 ...
- 局域网内Ping不通
局域网ping不通, 原来不可忽视这步......... 通常,经常在局域网里面,为了检测网络是否顺畅,都会ping一下IP,如果网络正常,就可以上网或者远程处理其他故障.但是会出现ping别人的主机 ...
- QT:创建一个widget,包含源文件,头文件,以及ui文件
1. 安装QT 2. 在QT Welcome画面,点击 New Project 3. 选择Application--Qt Widgets Application 4. 按提示创建即可 文件目录如下: ...
- js 如何判断数组元素是否存在重复项
1.如何判断数组元素是否存在重复项 1)定义测试数组 //定义测试的数组(1个没有重复元素,1个有重复元素) var arr1 = new Array("111","33 ...