451 Sort Characters By Frequency

方法一: 使用Python sort 函数 时间复杂度:O(nlogn)

方法二:使用heapq 最小堆 时间复杂度:O()

class Solution(object):
    def frequencySort(self, s):
        """
        :type s: str
        :rtype: str
        """
        d = {}
        for char in s:
            if char in d:
                d[char] += 1
            if char not in d:
                d[char] = 1
        data = []
        for key, value in d.items():
            data.append((value, key))
        data.sort(key = lambda item: item[0], reverse = True)
        ans = ""
        for i in range(len(data)):
            ans += data[i][1]*data[i][0]
        return ans
import heapq
class Solution(object):
    def frequencySort(self, s):
        """
        :type s: str
        :rtype: str
        """
        d = {}
        for char in s:
            if char in d:
                d[char] += 1
            if char not in d:
                d[char] = 1
        data = []
        for key, value in d.items():
            data.append((-value, key))
        heapq.heapify(data)
        ans = ""
        while len(data):
            (value, key) = heapq.heappop(data)
            value = -value
            for i in range(value):
                ans += key
        return ans

results matching ""

    No results matching ""