新农上路
- 积分
- 98
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2019-9-12
- 最后登录
- 1970-1-1
|
本帖最后由 S03S 于 2021-10-5 16:46 编辑
python , 大神指点下:
···
- <div class="blockcode"><blockquote>def match_team(members):
- hq = []
- team_members = collections.defaultdict(list)
- for mem, team in members:
- team_members[team].append(mem)
- for team, members in team_members.items():
- heapq.heappush(hq, (-len(members), team, members))
- res = []
- while len(hq) >= 2:
- print(hq)
- a_len, a_team, a_members = heapq.heappop(hq)
- b_len, b_team, b_members = heapq.heappop(hq)
- res.append((a_members.pop(), b_members.pop()))
- if a_len < -1:
- heapq.heappush(hq, (a_len+1, a_team, a_members))
- if b_len < -1:
- heapq.heappush(hq, (b_len+1, b_team, b_members))
- return res
- input = [["Alex","Infra"],["Kevin","Search"],["Jill","HR"],["Jane","Infra"],["Justin","Search"],["Michael","HR"]]
- print(match_team(input))
复制代码 |
|