题解 | #H27 字符串排序#
字符串排序
https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584
方法1
while True:
try:
s = input()
# 提取纯字母字符
a = ""
for i in s:
# 如果字符是字母,则添加到字符串a中
if i.isalpha():
a += i
# 对每个字母应用str.upper方法,并根据返回的大写值来排序,返回排序后的字母列表。
# 由于str.upper会返回一个新的字符串,不会修改原始字符串,这样就能保留原始字符串的大小写格式。
b = sorted(a, key=str.upper)
# 初始化排序后的结果字符串
d = ""
# 初始化索引,用于跟踪列表b中的位置
index = 0
# 遍历原始字符串s
for i in range(len(s)):
# 如果当前位置的字符是字母
if s[i].isalpha():
# 将排序后的字母添加到结果字符串d
d += b[index]
# 移动到排序后列表的下一个字母
index += 1
else:
# 如果不是字母,则直接添加到结果字符串d
d += s[i]
print(d)
except:
break
方法2
while True:
try:
s = input()
# 创建一个列表,用于存储最终排序后的字符
sorted_chars = sorted([c for c in s if c.isalpha()], key=lambda x: x.lower())
# 将其他字符按照原位置插入到排序后的列表中
for i, c in enumerate(s):
if not c.isalpha():
sorted_chars.insert(i, c)
print("".join(sorted_chars))
except:
break
【牛客站内】华为机试题解 文章被收录于专栏
【牛客站内】 分享个人刷题的思路和解法
查看8道真题和解析