zoukankan      html  css  js  c++  java
  • 1370. 上升下降字符串

     

    思路:即先拼接string的升序序列,再拼接其降序序列。
    1、将string转成list;
    2、升序排list,各元素取一个拼接到res,将拼接过的元素从原list中删除;
    3、降序排list,各元素取一个拼接到res,将拼接过的元素从原list中删除;
    4、重复2和3,直到list为空。
    若最小或者最大字符不止一个 ,只选其中任意一个拼接到结果字符串。
     1 class Solution(object):
     2     def sortString(self, s):
     3         """
     4         :type s: str
     5         :rtype: str
     6         """
     7         # 返回值
     8         res = ""
     9         # 转成list
    10         lists = list(s)
    11         # 直到原串为空,结束循环
    12         while len(lists) > 0:
    13             # 升序排列
    14             lists.sort(reverse=False)
    15             # 遍历前先清空
    16             temp = ""
    17             for i, ch in enumerate(lists):
    18                 if ch not in temp:
    19                     temp += ch
    20             # 拼接结果
    21             res += temp
    22             # 将拼接过的字符从原list中删掉
    23             for i in range(len(temp)):
    24                 lists.remove(temp[i])
    25 
    26             # 降序排列
    27             lists.sort(reverse=True)
    28             # 清空记录
    29             temp = ""
    30             for i, ch in enumerate(lists):
    31                 if ch not in temp:
    32                     temp += ch
    33             # 拼接结果
    34             res += temp
    35             # 将拼接过的字符从原list中删掉
    36             for i in range(len(temp)):
    37                 lists.remove(temp[i])
    38         return res
    39 
    40 
    41 if __name__ == '__main__':
    42     solution = Solution()
    43     print(solution.sortString(s="bbbbccccaaaa"))
     
  • 相关阅读:
    Mybatis Interceptor 拦截器原理 源码分析
    Mybatis SqlSessionTemplate 源码解析 原理理解
    DRUID连接池的实用 配置详解以及监控配置
    Oracle 单行函数
    Oracle复杂查询及总结
    Oracle数据更新、事务处理、数据伪列
    Oracle表的创建及管理
    Oracle建表、更新、查询综合练习
    Oracle约束
    Oracle集合、序列
  • 原文地址:https://www.cnblogs.com/panweiwei/p/12712846.html
Copyright © 2011-2022 走看看