52ky 发表于 2022-5-3 10:10:01

禁用保留列表的最有效数据结构

问题
我在 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]
查看完整版本: 禁用保留列表的最有效数据结构