【Leetcode_总结】451. 根据字符出现频率排序 - python

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
        

 

你可能感兴趣的:(Leetcode)