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