📅  最后修改于: 2023-12-03 15:42:21.403000             🧑  作者: Mango
这道题是2005年门|门 IT的第76题,是一道经典的编程题目。
给定一个字符串,把字符串中的字符按照出现次数降序排列,并输出排列后的字符串。
输入:"aabbbcccc" 输出:"ccccbbbaa"
首先我们需要统计每个字符出现的次数,可以使用一个数组来存储每个字符出现的次数。然后,我们可以将出现次数作为键,将相应的字符作为值,存储到一个哈希表中。最后,我们可以将哈希表中的元素按照键值降序排列,并输出排列后的字符串。
下面是这道题的python代码实现,希望能够帮助大家解决这道题:
def sort_string(s):
d = {}
for c in s:
if c in d:
d[c] += 1
else:
d[c] = 1
sorted_d = sorted(d.items(), key=lambda x: x[1], reverse=True)
ret = ''.join([k*v for k, v in sorted_d])
return ret
以上就是这道题的解题思路和代码实现,希望对大家有所帮助。