题解 | #字符串排序#
字符串排序
https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584
s = input() import re li = list(s) index_list = [] # 用来储存所有其他字符的索引 new_list = [] # 用来储存所有字母类字符 final_s = '' # 用来储存最终字符串 for i in range(len(li)): if not re.match("[A-Za-z]", li[i]): #将所有其他字符在原字符串中的索引,储存到列表 index_list.append(i) else: #将所有字母类字符,储存到另一个列表 new_list += li[i] new_list = sorted(new_list, key=lambda x:x.lower()) #对字母排序 for i in range(len(li)): # 遍历索引 if i not in index_list: # 如果该索引位置不是其他字符,则把排序后的第一个字母放进字符串中 final_s += new_list.pop(0) else: final_s += li[i] #如果该索引位置是其他字符,则根据索引将对应字符放进字符串 print(final_s)