leetcode:剑指 Offer 45. 把数组排成最小的数(学习python,对python的自定义cmp很懵逼呀)
程序员文章站
2024-03-24 09:46:04
...
题目:
分析:一道简单题,想用python写竟然花了1h之多。
代码:
class SmallerNumKey(str): # 定义一个类
def __lt__(x, y):
return x + y < y + x
class Solution:
def minNumber(self, nums: List[int]) -> str:
# map: 将nums每一项转化成str
smallest_num = ''.join(sorted(map(str, nums),key=SmallerNumKey))
return smallest_num
慢慢说学到的python:
1.排序,使用lambda进行排序是不太对了。不知道原因。
学习上述的自定义类来自己写一个比较函数。
本代码的改成数字的之后,报错:
2.列表中每个元素转化为字符串的方法。
①:
为何不行?
②:遍历list逐个转化:
nums = [str(i) for i in nums]~