本文共 639 字,大约阅读时间需要 2 分钟。
为了解决这个问题,我们需要将给定的字符串中的字符按照它们的频率进行降序排列。相同频率的字符可以按照任意顺序排列,但必须连续出现。
collections.Counter 来统计每个字符的频率。from collections import Counterdef frequencySort(s): if len(s) < 2: return s count = Counter(s) sorted_chars = sorted(count.items(), key=lambda x: -x[1]) res = [] for char, freq in sorted_chars: res.append(char * freq) return ''.join(res)
Counter 统计字符串中每个字符的出现次数。sorted 函数按频率降序排列。如果频率相同,按字符的自然顺序排列。这种方法确保了字符按照频率降序排列,且相同频率的字符连续出现,满足题目的要求。
转载地址:http://hbgfk.baihongyu.com/