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