题解 | #字符串排序#
字符串排序
https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584
# line = input() # 获取输入
# L = "abcdefghijklmnopqrstuvwxyz" # 设置字母顺序
# M = list(map(str.isalpha, line)) # 判断是否为字母
# re = {}
# line2 = ''
# for i in range(len(M)): #遍历
# if not M[i]: #记录非字母及其索引
# re[i] = line[i]
# else:
# line2 = line2 + line[i] # 记录字母
# line2 = sorted(line2, key=str.upper) # 根据特定的规则进行排序
# op = ''
# idx2 = 0 # 标记有多少个字母
# for idx in range(len(line)):
# if idx in re.keys(): # 非字母
# op = op + re[idx]
# idx2 = idx2 + 1
# else:
# op = op + line2[idx - idx2]
# print(op)
astr=input()
M = list(map(str.isalpha, astr))
re_alpha = []
re_non_alpha = []
for achr in astr:
if achr.isalpha():
re_alpha.append(achr)
else:
re_non_alpha.append(achr)
re_alpha = sorted(re_alpha, key=lambda x:x[0].upper())
op = ''
for flag in M:
if flag:
op = op + re_alpha.pop(0)
else:
op = op + re_non_alpha.pop(0)
print(op)
查看3道真题和解析