|
|
发表于 2020-4-1 14:37:27
|
显示全部楼层
- from collections import Counter
- def f365(s):
- num = Counter(s)
- if max(num.values()) > (len(s)+1)//2:
- return ''
- num = sorted(num.items(),key=lambda x:x[1],reverse=True)
- num = [list(n) for n in num]
- rec = []
- l, r = 0, len(num)-1
- while l < r:
- if num[l][1] == 0:
- l += 1
- rec += num[l][0]
- num[l][1] -= 1
- if num[r][1] == 0:
- r -= 1
- rec += num[r][0]
- num[r][1] -= 1
- rec = rec[:len(s)]
- l, r = 0, len(rec)-1
- while rec[r] == rec[r-1]:
- rec[l], rec[r-1] = rec[r-1], rec[l]
- l += 3
- r -= 1
- return ''.join(rec)
复制代码 |
评分
-
查看全部评分
|