题解 | #字符串排序#

字符串排序

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

import sys

"""
输入,这次不能split
就是对字母类型的数据进行重新排序
    既有字母,同时字母还有大小写
        不需要区别大小写就很不错
    还有非字母,非字母的位置又放在哪里
        非字母的数字直接跳过就好

突然发现就是一个限制条件非常多的冒泡排序
不断地把最大值往后扔,期间遇到非字母的就跳过
其实字母对于阿斯克码来说也是数字
"""

s = list(input())

for i in range(len(s)):
    cur = 0
    nex = 1

    while nex < len(s):
        if cur == nex:
            nex +=1
        # cur是字母
        if "A" <= s[cur] <= "Z" or "a" <= s[cur] <= "z":
            # nex也是字母
            if "A" <= s[nex] <= "Z" or "a" <= s[nex] <= "z":
                # 比较之后小于就换位置,不小就+1
                if s[cur].lower() > s[nex].lower():
                    # 字符串不能用拆包的方式改变
                    s[cur], s[nex] = s[nex], s[cur]
                    cur, nex = cur + 1, nex + 1
                else:
                    cur, nex = cur + 1, nex + 1
            # nex不是字母
            else:
                nex = nex + 1

        # cur不是字母
        else:
            cur += 1
for i in s:
    print(i,end= "")


全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务