📅  最后修改于: 2023-12-03 15:07:34.956000             🧑  作者: Mango
这是一个程序设计问题,需要你写一个函数来实现对一个字符串的字符排序。
给出一个字符串,你需要写一个函数来对字符串中的字符进行排序。排序的规则为:按照字符出现的次数从多到少排序,如果出现次数相同,则按照字母先后顺序排序。
def string_sort(string: str) -> str:
pass
输入为一个字符串,字符串长度不超过1000。
返回一个按要求排序后的字符串。
assert string_sort("geeksforgeeks") == "eeefggkkorss"
assert string_sort("testcase") == "eeesttc"
collections.Counter
类来统计字符出现次数。key
参数来指定排序规则。from collections import Counter
def string_sort(string: str) -> str:
count = Counter(string)
return "".join(sorted(string, key=lambda x: (-count[x], x)))
本题中要求对字符串中的字符排序,可以先用collections.Counter
类对字符串中的字符进行计数,得到每个字符出现的次数。然后使用sorted
函数对字符串中的字符进行排序,排序的规则是先按照出现次数从多到少排序,如果出现次数相同则按照字母先后顺序排序,这可以通过key
参数来指定排序规则。使用join
函数将排序后的字符拼接成字符串返回。
以上就是本题的解题思路和Python代码实现。