概述
给定一个字符串,请将字符串里的字符按照出现的频率降序排列。
示例 1:
输入: "tree" 输出: "eert" 解释: 'e'出现两次,'r'和't'都只出现一次。 因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。
示例 2:
输入: "cccaaa" 输出: "cccaaa" 解释: 'c'和'a'都出现三次。此外,"aaaccc"也是有效的答案。 注意"cacaca"是不正确的,因为相同的字母必须放在一起。
示例 3:
输入: "Aabb" 输出: "bbAa" 解释: 此外,"bbaA"也是一个有效的答案,但"Aabb"是不正确的。 注意'A'和'a'被认为是两种不同的字符。
from collections import Counter
class Solution:
def frequencySort(self, s):
"""
:type s: str
:rtype: str
class Solution:
def frequencySort(self, s):
"""
:type s: str
:rtype: str
1
2
3
4
5
6
7
8
9
|
sum
(
c
.
values
(
)
)
# 所有计数的总数
c
.
clear
(
)
# 重置Counter对象,注意不是删除
list
(
c
)
# 将c中的键转为列表
set
(
c
)
# 将c中的键转为set
dict
(
c
)
# 将c中的键值对转为字典
c
.
items
(
)
# 转为(elem, cnt)格式的列表
Counter
(
dict
(
list_of_pairs
)
)
# 从(elem, cnt)格式的列表转换为Counter类对象
c
.
most_common
(
)
[
:
-
n
:
-
1
]
# 取出计数最少的n-1个元素
c
+=
Counter
(
)
# 移除0和负值
|
"""
count=collections.Counter(s).most_common()
res=''
for c,v in count:
res+=c*v
return res
最后
以上就是甜美往事为你收集整理的LeetCode 451. 根据字符出现频率排序的全部内容,希望文章能够帮你解决LeetCode 451. 根据字符出现频率排序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复