Python 程式根據自定義順序排序字串
假設我們有一個字母數字字串 s。我們需要根據以下條件對其進行排序
所有排序後的**小寫字母**將放置在**大寫字母**之前。
所有排序後的**大寫字母**將放置在**數字**之前。
所有排序後的**奇數數字**將放置在排序後的**偶數數字**之前。
因此,如果輸入類似於 s = "HeLlo1234",則輸出將為 eloHL1324
為了解決這個問題,我們將遵循以下步驟:
- 定義一個函式 f()。它將接收字元 c
- 程式碼 := 0
- 如果 c 為大寫字母,則
- 程式碼 := 10^3
- 否則,如果 c 為數字,則
- 程式碼 := 10^6
- 如果 c 的 ASCII 碼為偶數,則
- 程式碼 := 10^9
- 返回程式碼 + c 的 ASCII 碼
- 在主方法中執行以下操作
- l := s 的排序列表,並透過呼叫 f() 函式對 s 中的每個字元 c 進行排序
- 連線 l 中的每個字元並返回
示例
讓我們看看以下實現,以便更好地理解
def f(c):
code = 0
if c.isupper():
code = 10 ** 3
elif c.isdigit():
code = 10 ** 6
if ord(c) % 2 == 0:
code = 10 ** 9
return code + ord(c)
def solve(s):
l = sorted(s, key=lambda c: f(c))
return ''.join(l)
s = "HeLlo1234"
print(solve(s))輸入
"HeLlo1234"
輸出
eloHL1324
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP