用 Python 编写一个程序,对给定列表中的所有元素进行排序,并将它们合并为一个字符串

pythonserver side programmingprogramming更新于 2026/1/11 18:20:17

假设我们得到了一个正整数列表。我们必须按降序对列表进行排序,然后必须将其中的所有元素连接起来形成一个字符串。我们返回连接后的字符串。

因此,如果输入类似于 input = [415, 78, 954, 123, 5],则输出将是 954785415123

为了解决这个问题,我们将遵循以下步骤 −

  • 定义一个函数 cmp() 。这将采用 l, r
    • 如果 ((l) 的字符串表示 + (r) 的字符串表示) 的整数值 > ((r) 的字符串表示 + (l) 的字符串表示) 的整数值,则
      • 返回 1
    • 否则,
      • 返回 -1
  • 根据函数 compare 对列表输入进行排序
  • 将输入中的所有元素连接成一个字符串并返回。

示例

让我们看看下面的实现以便更好地理解 −

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

相关文章


有用资源