题解 | #字符串排序#
字符串排序
https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584
s = input()
res,alph = '',[]
#记录字符串中的字母的值和索引,便于后续排序
for k,v in enumerate(s):
if 'a' <= v <= 'z' or 'A' <= v <= 'Z':
alph.append((k,v))
#双重排序,先按照字典序排序,在按照输入位置排序
alph.sort(key=lambda x:(x[1].lower(),k))
#i用来标记应该在第i个位置添加对应排序好的字母
i = 0
for c in s:
if 'a' <= c <= 'z' or 'A' <= c <= 'Z':
res += alph[i][1]
i += 1
else:
res += c
print(res)
