题解 | #字符串排序#
字符串排序
https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584
while True: try: #思路: #将字母单独提出来,然后排序 #遍历原字符串,遇到字母就替换,非字母就跳过 inputstring = input() inputlist = list(inputstring) #list比较好操作,用列表推导式 alphalist = [char for char in inputlist if char.isalpha()] newlist = sorted(alphalist, key=str.upper) finallist=[] i=0 #i用于记录已经使用掉的字母 for index, value in enumerate(inputlist): if value.isalpha(): finallist.append(newlist[i]) i+=1 else: finallist.append(value) for char in finallist: print(char,end='') except: break ''' #参考:https://blog.nowcoder.net/n/adb4ea7bccca437f9c25f329a3b4f2d5?f=comment while True: try: # 获取用户输入的字符串 inputstring = input() # 从输入字符串中提取字母,构建新字符串 'newstring' newstring = ''.join(i for i in inputstring if i.isalpha()) # 将 'newstring' 中的字母按不区分大小写的方式排序,得到 'sortedstring' sortedstring = sorted(newstring, key=str.upper) # 用于遍历 'sortedstring' 的索引 index = 0 # 构建最终的字符串 'finalstring' finalstring = '' for i in range(len(inputstring)): if inputstring[i].isalpha(): # 如果字符是字母,用 'sortedstring' 中对应索引的字母替换 finalstring += sortedstring[index] index += 1 else: # 如果字符不是字母,保持原样 finalstring += inputstring[i] # 打印最终的字符串 'finalstring' print(finalstring) except: # 当用户输入结束或发生异常时,退出循环 break '''