|
发表于 2020-4-26 13:55:13
|
显示全部楼层
本帖最后由 kinkon 于 2020-4-27 11:38 编辑
看了鱼友的发的发的帖子,发现差距还是很大的,都是快准狠,我只能暴力。
解法一:计数
- def f384(arr):
-
- carr = Counter(arr)
-
- a0 = '0'* carr.get('z', 0)
- a1 = '1'* min(carr.get('o', 0), carr.get('n', 0), carr.get('e', 0))
- a2 = '2'* carr.get('w', 0)
- a3 = '3'* min(carr.get('t', 0), carr.get('h', 0), carr.get('r', 0), carr.get('e', 0))
- a4 = '4'* carr.get('u', 0)
- a5 = '5'* min(carr.get('f', 0), carr.get('i', 0), carr.get('v', 0), carr.get('e', 0))
- a6 = '6'* carr.get('x', 0)
- a7 = '7'* min(carr.get('s', 0), carr.get('e', 0), carr.get('v', 0), carr.get('n', 0))
- a8 = '8'* carr.get('g', 0)
- a9 = '9'* min(carr.get('n', 0), carr.get('i', 0), carr.get('e', 0))
-
- return a0 + a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9
复制代码
解法二,时间O(N3),估计也超时了
- def f384(arr):#带重复的暴力
-
- dic = {'zero':'0', 'one':'1', 'two':'2', 'three':'3', 'four':'4',
- 'five':'5', 'six':'6', 'seven':'7', 'eight':'8', 'nine':'9'}
- carr = Counter(arr)
- ans = ''
- for val, n in dic.items():
- if all(v in carr for v in val):
- count = float('inf')
- for v in val:
- count = min(carr[v], count)
- #print(v, carr[v], count)
- ans += n * count
- return ans
复制代码
再来一个,还是暴力(有优化空间)
- def f384(arr):
-
- dic = {'zero':'0', 'one':'1', 'two':'2', 'three':'3', 'four':'4',
- 'five':'5', 'six':'6', 'seven':'7', 'eight':'8', 'nine':'9'}
- carr = Counter(arr)
- ans = ''
- while carr:
- for val, n in dic.items():
- temp = Counter(val)
- if not(temp - carr):
- ans += n
- carr -= temp
- break
- return ans
复制代码 |
评分
-
查看全部评分
|