注意不是一下子将多行的输入一起排列,是一次只排列一行。我的做法是先把字母提取到一个字符串里,其他字符提取到另一个字符串里。字母的提取过程中已经包含了排序,最后输出时按照对应位置输出字母或字符。

try:
    while True:
        str1 = str(input())

        cha = ''
        specha = ''
        k = []
        flag = 0

        for i in str1:
            lcha = int(len(cha))
            flag1 = 0

            if(ord(i) >= 65 and ord(i) <= 90):
                if(lcha == 0):
                    cha += i
                else:
                    for j in range(lcha):
                        if(ord(cha[j]) >= 65 and ord(cha[j]) <= 90):
                            if(ord(i) < ord(cha[j])):
                                cha = cha[0:j] + i + cha[j:lcha]
                                flag1 = 1
                                break
                        if(ord(cha[j]) >= 97 and ord(cha[j]) <= 122):
                            if(ord(i) < ord(cha[j]) - 32):
                                cha = cha[0:j] + i + cha[j:lcha]
                                flag1 = 1
                                break;
                    if(flag1 == 0):
                        cha += i
                flag += 1
            elif(ord(i) >= 97 and ord(i) <= 122):
                if(lcha == 0):
                    cha += i
                else:
                    for j in range(lcha):
                        if(ord(cha[j]) >= 65 and ord(cha[j]) <= 90):
                            if(ord(i)-32 < ord(cha[j])):
                                cha = cha[0:j] + i + cha[j:lcha]
                                flag1 = 1
                                break
                        if(ord(cha[j]) >= 97 and ord(cha[j]) <= 122):
                            if(ord(i) < ord(cha[j])):
                                cha = cha[0:j] + i + cha[j:lcha]
                                flag1 = 1
                                break
                    if(flag1 == 0):
                        cha += i
                flag += 1
            else:
                specha += i
                k.append(flag)
                flag += 1

        res_str = ''
        num1 = 0
        num2 = 0
        for i in range(len(str1)):
            if(num1 < len(specha) and i == k[num1]):
                res_str += specha[num1]
                num1 += 1
            else:
                if(num2 < len(cha)):
                    res_str += cha[num2]
                    num2 += 1

        print(res_str)

except:
    pass