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