Q:
给定一个字符串,请将字符串里的字符按照出现的频率降序排列。
示例 1:
输入: "tree" 输出: "eert" 解释: 'e'出现两次,'r'和't'都只出现一次。 因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。
链接:https://leetcode-cn.com/problems/sort-characters-by-frequency/description/
思路:统计字符频,排序,组成新的字符串
代码:
class Solution(object):
def frequencySort(self, s):
"""
:type s: str
:rtype: str
"""
from collections import Counter
dic = Counter(s)
tmp = [(v,dic[v]) for v in dic]
tmp.sort(key=lambda tmp: tmp[1],reverse=True)
res = ""
for t in tmp:
res+=t[0]*t[1]
return res