LeetCode第451题字符频率排序(Python版)
发布时间
阅读量:
阅读量
题目描述
【
对于一个给定的字符串,要求将其中的字符依据其出现的次数从高到低进行排序
示例 :
输入:
“tree”
输出:
“eert”
解释:
字符'e'共出现两次,而'r'和't'各出现一次。因此,在排列时'e'应排在'r'和't'之前。同时,“eetr”也属于一种符合要求的排列方式。
解题思路
根据字符出现的次数进行排序,统计结果可借助字典结构进行存储,针对该问题可采用以下三种方式予以解决:
(1) 可调用Python语言内置的sort函数,对字符的出现频率进行排序处理
(2) 采用桶排序算法,将具有相同出现次数的字符归类至同一存储单元中,再依据频数高低依次提取各桶中的数据
(3) 借助最大堆结构,使堆顶始终为出现频数最高的字符,进而按照频数由高到低的顺序逐个提取字符
具体代码实现
方法一:运用排序函数进行操作
# 法一 调用sort函数
class Solution(object):
def frequencySort(self, s):
"""
:type s: str
:rtype: str
"""
全部评论 (0)
还没有任何评论哟~
