禁用保留列表的最有效数据结构
问题我在 Ruby 中实现了一个团队分配算法,我必须实现一些功能,当给定学生的 id 对列表时,应该将学生分组在一起。
实现这一目标的最有效结构是什么?
我正在考虑一个散列,其中键是学生 ID,值是某个学生无法分组的所有学生 ID 的数组。
例如,如果 CSV 文件包含以下内容:
3,4
3,6
3,8
4,7
4,1
5,2
我想得到以下哈希:
{3=>, 4 =>, 5 =>}
但是,我想不出一种用 CSV 文件中的信息填充散列的有效方法。该文件每行有两个值。
之后最重复的操作是检查给定 ID 是否存在于给定学生的禁止配偶名单中。
回答
这应该适合你:
require 'CSV'
csv_string = %q(3,4
3,6
3,8
4,7
4,1
5,2 )
CSV.parse(csv_string, converters: :numeric)
.group_by(&:first)
.transform_values { |values| values.map(&:last) }
页:
[1]