题解 | #字符串排序#

字符串排序

https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584

while True: # 反复使用可执行程序,所以外部加while循环
    try: 
        c=input() # 输入一个字符串
        c1 = [a for a in c if a.isalpha()] # 获取该字符串中所有的字母记录在列中
        c1 = sorted(c1,key=str.upper)
		# 对字母列的元素,首先都将其统一大写或统一小写之后再排序,这样就避免了字母大小写对排序的干扰
		# 注意 key使用只是在排序过程中的计算过程 实际上并不会改变输出结果中的原来字母的值和大小写
		# 这样一来 巧妙完成了规则1和规则2 
		
		# 接下来,再次遍历原来的字符串,同样的判断,若是字母,那么我们就依次提取c1中的元素,若不是字母则提取		# 原字符串中本身的非字母其他
        index = 0 # 为了方便依次提取c1中的元素
        new_str='' # 新造的字符串,初始为空
        for each in c:
            if each.isalpha():
                new_str+=c1[index]
                index+=1
            else:
                new_str+=each
        print(new_str)

    except:
        break

全部评论

相关推荐

牛客26538663...:感觉校园活动太多了,然后可能教育背景这种标题字号有点大
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务