博客
关于我
LeetCode 451. 根据字符出现频率排序 【map】【排序】
阅读量:799 次
发布时间:2023-04-16

本文共 639 字,大约阅读时间需要 2 分钟。

为了解决这个问题,我们需要将给定的字符串中的字符按照它们的频率进行降序排列。相同频率的字符可以按照任意顺序排列,但必须连续出现。

方法思路

  • 统计频率:使用 collections.Counter 来统计每个字符的频率。
  • 排序字符:将字符按照频率降序排列。如果频率相同,字符的顺序可以根据字符的自然顺序来决定。
  • 构建结果字符串:根据排序后的字符频率,构建结果字符串。
  • 解决代码

    from collections import Counterdef frequencySort(s):    if len(s) < 2:        return s    count = Counter(s)    sorted_chars = sorted(count.items(), key=lambda x: -x[1])    res = []    for char, freq in sorted_chars:        res.append(char * freq)    return ''.join(res)

    代码解释

  • 统计频率:使用 Counter 统计字符串中每个字符的出现次数。
  • 排序字符:将字符及其频率对存储在列表中,并使用 sorted 函数按频率降序排列。如果频率相同,按字符的自然顺序排列。
  • 构建结果字符串:遍历排序后的列表,对于每个字符,重复其频率次数并拼接到结果字符串中。
  • 这种方法确保了字符按照频率降序排列,且相同频率的字符连续出现,满足题目的要求。

    转载地址:http://hbgfk.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现基本二叉树算法(附完整源码)
    查看>>
    Objective-C实现堆排序(附完整源码)
    查看>>
    Objective-C实现填充环形矩阵(附完整源码)
    查看>>
    Objective-C实现声音录制播放程序(附完整源码)
    查看>>
    Objective-C实现备忘录模式(附完整源码)
    查看>>
    Objective-C实现复制粘贴文本功能(附完整源码)
    查看>>
    Objective-C实现复数类+-x%(附完整源码)
    查看>>
    Objective-C实现外观模式(附完整源码)
    查看>>
    Objective-C实现多启发式a star A*算法(附完整源码)
    查看>>
    Objective-C实现多尺度MSR算法(附完整源码)
    查看>>
    Objective-C实现多种方法求解定积分(附完整源码)
    查看>>
    Objective-C实现多组输入(附完整源码)
    查看>>
    Objective-C实现多项式函数在某个点的评估算法(附完整源码)
    查看>>
    Objective-C实现多项式哈希算法(附完整源码)
    查看>>
    Objective-C实现大位数乘法(附完整源码)
    查看>>
    Objective-C实现大根堆(附完整源码)
    查看>>
    Objective-C实现奇偶检验码(附完整源码)
    查看>>
    Objective-C实现奇偶转置排序算法(附完整源码)
    查看>>
    Objective-C实现奇异值分解SVD(附完整源码)
    查看>>
    Objective-C实现奎因-麦克拉斯基算法(附完整源码)
    查看>>