Leetcode---179.最大数

简介: 简单的算法

python中的map函数

map是python中的内置函数,会根据提供的函数对指定的序列做映射。
map的函数格式是map(function,iterable,...) 第一个参数接受函数,第二个接受可迭代序列,返回的是一个集合。
举两个实例:

del square(x):

return x ** 2

map(square,[1,2,3,4,5])

结果如下:

[1,4,9,16,25]

1
2
3
4
5
6
7
8
map(lambda x, y: x+y,[1,3,5,7,9],[2,4,6,8,10])

结果如下:

[3,7,11,15,19]

1
2
3
4
5
还可以实现简单的类型转化。
将字符串转换为list:map(int,'1234')

Python 使用 lambda 来创建匿名函数

lambda [arg1 [, arg2, ..., argn]] : expression
其一,作为函数对象,lambda 可赋值给一个变量,再利用变量来调用该函数f = lambda x : x + 1
其二,作为其他函数的返回值,返回函数:def f(x, y) return lambada x, y : x ** y
reduce函数。此时lambda函数用于指定列表中两两相邻元素的结合条件。

python functools.cmp_to_key使用

比较函数意为一个可调用对象,该对象接受两个参数并比较它们,结果为小于则返回一个负数,相等则返回零,大于则返回一个正数。key function 则是一个接受一个参数,并返回另一个用以排序的值的可调用对象。通过这个函数可以把一个 cmp 函数(它支持两个参数,排序过程是一个对比过程,对比在两个元素之间进行)变成一个 key 函数,从而可以实现自定义排序规则。
class Solution:

def largestNumber(self, nums: List[int]) -> str:
    import functools
    nums_str = list(map(str, nums))
    compare=lambda x,y: 1 if x+y<y+x else -1
    nums_str.sort(key=functools.cmp_to_key(compare))
    res=''.join(nums_str)
    if res[0]=='0':
            res='0'
    return res

将列表字符串化,然后通过lambda函数实现排序,再进行拼接。

相关文章
|
6月前
leetcode:414. 第三大的数
leetcode:414. 第三大的数
30 0
|
6月前
leetcode-414:第三大的数
leetcode-414:第三大的数
37 0
|
6月前
|
C语言
leetcode:191. 位1的个数
leetcode:191. 位1的个数
26 0
|
6月前
|
算法 Java
LeetCode算法题---两数之和(一)
LeetCode算法题---两数之和(一)
55 0
|
6月前
|
机器学习/深度学习
leetcode-507:完美数
leetcode-507:完美数
39 0
|
6月前
leetcode-191:位1的个数
leetcode-191:位1的个数
44 0
|
6月前
力扣每日一题 ---- 2918. 数组的最小相等和
力扣每日一题 ---- 2918. 数组的最小相等和
|
11月前
LeetCode---两数之和
LeetCode---两数之和
31 0
剑指offer_数组---最小的K个数
剑指offer_数组---最小的K个数
49 0
剑指offer_数组---把数组排成最小的数
剑指offer_数组---把数组排成最小的数
48 0