Python程序:对给定列表中的所有元素进行排序并合并成字符串
假设我们得到一个正整数列表。我们需要将列表按降序排序,然后将所有元素连接起来形成一个字符串。最后返回这个连接后的字符串。
例如,如果输入是 input = [415, 78, 954, 123, 5],则输出将是 954785415123
为了解决这个问题,我们将遵循以下步骤:
- 定义一个函数 cmp()。它将接收 l 和 r 两个参数。
- 如果 (l 的字符串表示 + r 的字符串表示) 的整数值 > (r 的字符串表示 + l 的字符串表示) 的整数值,则
- 返回 1
- 否则,
- 返回 -1
- 如果 (l 的字符串表示 + r 的字符串表示) 的整数值 > (r 的字符串表示 + l 的字符串表示) 的整数值,则
- 根据 compare 函数对列表 input 进行排序
- 将 input 中的所有元素连接成一个字符串并返回。
示例
让我们来看下面的实现以更好地理解:
from functools import cmp_to_key def cmp(l, r): if int(str(l) + str(r)) > int(str(r) + str(l)): return 1 else: return -1 def solve(input): input.sort(key=cmp_to_key(cmp), reverse=True) return "".join(map(str, input)) print(solve([415, 78, 954, 123, 5]))
输入
[415, 78, 954, 123, 5]
输出
954785415123
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP