a*****g 发帖数: 19398 | 1 Set = {}
-- create a new set with the values of the given list
function Set.new (l)
local set = {}
for _, v in ipairs(l) do set[v] = true end
return set
end
function Set.union (a, b)
local res = Set.new{}
for k in pairs(a) do res[k] = true end
for k in pairs(b) do res[k] = true end
return res
end
function Set.intersection (a, b)
local res = Set.new{}
for k in pairs(a) do
res[k] = b[k]
end
return res
end |
a*****g 发帖数: 19398 | 2 比起 c语言来是简单很多啊
【在 a*****g 的大作中提到】 : Set = {} : -- create a new set with the values of the given list : function Set.new (l) : local set = {} : for _, v in ipairs(l) do set[v] = true end : return set : end : function Set.union (a, b) : local res = Set.new{} : for k in pairs(a) do res[k] = true end
|
h**********c 发帖数: 4120 | 3 c 三十年以前就有hashset/hashtable
好象最近几年很多 comeidan改刷题了吧,
在好几个地方见过研究生毕业怎么算两个set intersection不会.
你这个union, java Set::addall 就解决了。
【在 a*****g 的大作中提到】 : 比起 c语言来是简单很多啊
|
a*****g 发帖数: 19398 | 4 我主要是考虑拿基本语言去实现的思路,
还不是考虑有没有现成的可调用的函数
【在 h**********c 的大作中提到】 : c 三十年以前就有hashset/hashtable : 好象最近几年很多 comeidan改刷题了吧, : 在好几个地方见过研究生毕业怎么算两个set intersection不会. : 你这个union, java Set::addall 就解决了。
|
h**********c 发帖数: 4120 | 5 这种基础库,都是开发团队反复review过的并在生产中大量应用,做个CS201练习还可
以。
【在 a*****g 的大作中提到】 : 我主要是考虑拿基本语言去实现的思路, : 还不是考虑有没有现成的可调用的函数
|