Hitting "Memory Limit Exceeded" in problem "sort-characters-by-frequency"
Anonymous User
123

Here is my code:

    def frequencySort(self, s):
        """
        :type s: str
        :rtype: str
        """
        char_list = []
        char_dict = {}
        output_string = ""
        for char in s:
            if not char in char_list:
                char_list.append(char)
                char_dict[char] = [1]
            else:
                if char_dict[char][-1] == sys.maxsize:
                    char_dict[char].append(1)
                else:
                    char_dict[char][-1] = char_dict[char][-1] + 1

        for i in range (0,len(char_list) - 1):
            for j in range (0,len(char_list) - i - 1):
                if char_dict[char_list[j]][-1] < char_dict[char_list[j+1]][-1]:
                    temp_char = char_list[j]
                    char_list[j] = char_list[j+1]
                    char_list[j+1] = temp_char

        for index in range(0,len(char_list)):
            for count in char_dict[char_list[index]]:
                for i in range(0,count):
                    output_string =  output_string + char_list[index]
        return output_string```

Code passes all testcase other than where the input is a very large string like this:
abababababababababababbbbbbbbbbbbbbbbbbbbb.... I'm not able to get the exact number of characters , but it is somewhere in 80k or more
Comments (2)