朱莉娅的不相交联盟

问题描述 投票:0回答:1

是否有一个快速函数可以像并集和相交一样找到三个或更多数组的不相交并集?我已经搜索过了,但是没找到。

a=[1,2,3,6,7]
b=[2,3,4]
c=[3,4,5,6,7]
un=union(a,b,c)
for i in union(intersect(a,b),intersect(b,c),intersect(a,c))
    filter!(e->e!=i,un)
end

这给出了正确答案 un=[1,5] 但肯定有一个函数?

julia disjoint-union
1个回答
0
投票

以下还计算仅出现在一次向量中的元素(并推广到更多向量):

julia> using StatsBase

julia> un = filter(==(1)∘last,countmap(Iterators.flatten([a,b,c]))) |> keys |> collect
2-element Vector{Int64}:
 5
 1
© www.soinside.com 2019 - 2024. All rights reserved.