『字符串』上升下降字符串1370

题目相关

  • 原题链接:1370. 上升下降字符串 - 力扣(LeetCode)
  • 涉及知识:字符串、排序
  • 题目难度:★

题目解读

由题意得,需要重复地从一个字符串(字符列表)中提取非重字符集合并排序直至源字符串中字符都被提取一次。

Python相关

  • 关于排序,我们可以直接调用Python内置的listsort方法,通过设置reverse参数来控制是否降序。
  • 关于字符集合提取,我们可以采用Python中collections内置库的Counter对象来操作

具体实现

class Solution:
    def sortString(self, s: str) -> str:
        str_counter = collections.Counter(s)
        result = []
        flag = False
        while str_counter:
            keys = list(str_counter.keys())
            keys.sort(reverse=flag)
            flag = not flag
            result.append(''.join(keys))
            str_counter -= collections.Counter(keys)
        return ''.join(result)

你可能感兴趣的:(『字符串』上升下降字符串1370)