题解 | #字符串排序#
字符串排序
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
'''


