Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,13 @@
|
|||
using BenchmarkTools, Combinatorics
|
||||
|
||||
function missingperm(arr::Vector)
|
||||
allperms = String.(permutations(arr[1])) # revised for type safety
|
||||
for perm in allperms
|
||||
if perm ∉ arr return perm end
|
||||
end
|
||||
end
|
||||
|
||||
arr = ["ABCD", "CABD", "ACDB", "DACB", "BCDA", "ACBD", "ADCB", "CDAB", "DABC", "BCAD",
|
||||
"CADB", "CDBA", "CBAD", "ABDC", "ADBC", "BDCA", "DCBA", "BACD", "BADC", "BDAC",
|
||||
"CBDA", "DBCA", "DCAB"]
|
||||
@show missingperm(arr)
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
function missingperm1(arr::Vector{<:AbstractString})
|
||||
missperm = string()
|
||||
for pos in 1:length(arr[1])
|
||||
s = Set()
|
||||
for perm in arr
|
||||
c = perm[pos]
|
||||
if c ∈ s pop!(s, c) else push!(s, c) end
|
||||
end
|
||||
missperm *= first(s)
|
||||
end
|
||||
return missperm
|
||||
end
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
function missingperm2(arr::Vector)
|
||||
len = length(arr[1])
|
||||
xorval = zeros(UInt8, len)
|
||||
for perm in [Vector{UInt8}(s) for s in arr], i in 1:len
|
||||
xorval[i] ⊻= perm[i]
|
||||
end
|
||||
return String(xorval)
|
||||
end
|
||||
|
||||
@show missingperm(arr)
|
||||
@show missingperm1(arr)
|
||||
@show missingperm2(arr)
|
||||
|
||||
@btime missingperm(arr)
|
||||
@btime missingperm1(arr)
|
||||
@btime missingperm2(arr)
|
||||
Loading…
Add table
Add a link
Reference in a new issue