[软件设计/软件工程] 禁用保留列表的最有效数据结构

[复制链接]
发表于 2022-5-3 10:10:01
问题
我在 Ruby 中实现了一个团队分配算法,我必须实现一些功能,当给定学生的 id 对列表时,应该将学生分组在一起。

实现这一目标的最有效结构是什么?

我正在考虑一个散列,其中键是学生 ID,值是某个学生无法分组的所有学生 ID 的数组。

例如,如果 CSV 文件包含以下内容:
  1. 3,4
  2. 3,6
  3. 3,8
  4. 4,7
  5. 4,1
  6. 5,2
复制代码

我想得到以下哈希:

{3=>[4,6,8], 4 =>[7,1], 5 =>[2]}

但是,我想不出一种用 CSV 文件中的信息填充散列的有效方法。该文件每行有两个值。

之后最重复的操作是检查给定 ID 是否存在于给定学生的禁止配偶名单中。

回答
这应该适合你:
  1. require 'CSV'

  2. csv_string = %q(3,4
  3. 3,6
  4. 3,8
  5. 4,7
  6. 4,1
  7. 5,2 )

  8. CSV.parse(csv_string, converters: :numeric)
  9.    .group_by(&:first)
  10.    .transform_values { |values| values.map(&:last) }
复制代码






上一篇:当我在android中单击按钮时如何撰写电子邮件?
下一篇:materialzile.css 转盘在移动设备上不起作用

使用道具 举报

Archiver|手机版|小黑屋|吾爱开源 |网站地图

Copyright 2011 - 2012 Lnqq.NET.All Rights Reserved( ICP备案粤ICP备14042591号-1粤ICP14042591号 )

关于本站 - 版权申明 - 侵删联系 - Ln Studio! - 广告联系

本站资源来自互联网,仅供用户测试使用,相关版权归原作者所有

快速回复 返回顶部 返回列表