python sorString 上升下降字符串

分析:本题目要求字符串内非重复正序+倒序+正序+倒序+..重新排列,例如aaaabbbbcccc,最后abccbaabccba效果
以下实现思路:1、把字符串借助序列set去重 2、sorted排序 3、取字符放到result,并在原有字符串s中replace删去 4、重复1和2过程,string重新去重排序;并用列表revserse倒序,重复3的过程取结果并删去。5、把以上过程while循环,判断条件为string非空。
用的知识点:
1、set(string),字符串set,去重,type变成序列
2、sorted()对序列排序,正序排列,type变成list
3、字符串replace实现删除。s.replace()
s.replace(old,new,1)代表替换第一个;s.replace(old,new)代表替换全部;s.repalce(old,)代表删除
4、list.reverse()对列表反序排列
5、循环判断,while是否为空


代码:

def sorString(s):
    result = 
    while len(s) > 0:

        s_temp = set(s)

        s_temp = sorted(s_temp)
        #print(s_temp,s_temp)

        for i in s_temp:
            result = result + i
            s = s.replace(i, , 1)


        s_temp1 = sorted(set(s))
        #print(type(s_temp1),type(s_temp1))
        s_temp1.reverse()
        #print(s_temp1,s_temp1)

        for i in s_temp1:
            result = result + i
            s = s.replace(i,,1)
    print(result,result)

if __name__ == __main__:
    s = "aaaabbbbcccc"
    sorString(s)
    s = "rat"
    sorString(s)
    s = "gggg"
    sorString(s)
    s = "spo"
    sorString(s)

运行结果:

result abccbaabccba
result art
result gggg
result ops
经验分享 程序员 微信小程序 职场和发展