|
发表于 2020-4-1 03:14:22
|
显示全部楼层
本帖最后由 sjtuszy 于 2020-4-1 14:06 编辑
- def fun365(s):
- list_sort = sorted(sorted(s), key = lambda x : s.count(x), reverse = True) #按字母的数量从多到少重排
- if list_sort.count(list_sort[0]) - 1 > len(s) - list_sort.count(list_sort[0]): #最多的字母中间的“空”若不够其他所有字母来插空,则返回''
- return ''
- else:
- list_1 = list_sort[:list_sort.count(list_sort[0])] #最多的字母成list_1列,其余所有字母成list_2列
- list_2 = list_sort[list_sort.count(list_sort[0]):]
- i = 0
- for each in list_2:
- list_1[i % len(list_1)] += each #list_2中的字母依次从左开始插在list_1的字母后边,插到list_1最后则再一次从左开始
- i += 1
- return ''.join(list_1)
复制代码 |
评分
-
查看全部评分
|