aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2022-11-29 09:47:12 +0000
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2022-11-29 09:47:12 +0000
commita9df9b0b61d40ea6ad71c153c17bd7c0447f9784 (patch)
treeba2b963f57909fbe5b1565cf167502aeeaa14160
parent16679b5bf7a9b5c3559f8a8f01d0e27095962371 (diff)
parentf2f9df40a193fd2e1eb65b525e54a7b974deb97d (diff)
downloadperlweeklychallenge-club-a9df9b0b61d40ea6ad71c153c17bd7c0447f9784.tar.gz
perlweeklychallenge-club-a9df9b0b61d40ea6ad71c153c17bd7c0447f9784.tar.bz2
perlweeklychallenge-club-a9df9b0b61d40ea6ad71c153c17bd7c0447f9784.zip
Merge branch 'master' of https://github.com/manwar/perlweeklychallenge-club
-rwxr-xr-xchallenge-193/steve-g-lynn/julia/ch-1.sh2
-rwxr-xr-xchallenge-193/steve-g-lynn/julia/ch-2.jl62
-rwxr-xr-xchallenge-193/steve-g-lynn/raku/ch-2.p64
3 files changed, 65 insertions, 3 deletions
diff --git a/challenge-193/steve-g-lynn/julia/ch-1.sh b/challenge-193/steve-g-lynn/julia/ch-1.sh
index e509f7c40e..d0e78df97f 100755
--- a/challenge-193/steve-g-lynn/julia/ch-1.sh
+++ b/challenge-193/steve-g-lynn/julia/ch-1.sh
@@ -1,4 +1,4 @@
#!/bin/sh
-julia -e 'using Printf;for i in (parse(Int64,"0b"*repeat("0",parse(Int64,ARGS[1]))):parse(Int64,"0b"*repeat("1",parse(Int64,ARGS[1])))); println(SubString(bitstring(i),65-parse(Int64,ARGS[1]))); end;' $@
+julia -e 'for i in (parse(Int64,"0b"*repeat("0",parse(Int64,ARGS[1]))):parse(Int64,"0b"*repeat("1",parse(Int64,ARGS[1])))); println(SubString(bitstring(i),65-parse(Int64,ARGS[1]))); end;' $@
diff --git a/challenge-193/steve-g-lynn/julia/ch-2.jl b/challenge-193/steve-g-lynn/julia/ch-2.jl
new file mode 100755
index 0000000000..df83676d0a
--- /dev/null
+++ b/challenge-193/steve-g-lynn/julia/ch-2.jl
@@ -0,0 +1,62 @@
+#!/usr/bin/env julia
+
+function codehash(a::SubString{String}) ::Int64
+ ctr=0
+ for i in 'a':'z'
+ if only(a)==i
+ return ctr+1
+ else
+ ctr=ctr+1
+ end
+ end
+end
+
+function difference_array(a::String) ::Vector{Int64}
+ retval=Vector{Int64}()
+ a_vec=split(a,"")
+ for i in 2:length(a)
+ push!(retval,codehash(a_vec[i])-codehash(a_vec[i-1]))
+ end
+ return retval
+end
+
+function difference_array(a::Vector{String}) ::Matrix{Int64}
+ retval=Array{Int64}(undef,0,2)
+ for i in a
+ retval=[retval;difference_array(i)']
+ end
+ return retval
+end
+
+function mybag(a::Matrix{Int64}) ::Dict{Vector{Int64},Int64}
+ retval=Dict{Vector{Int64},Int64}()
+ for i in eachrow(a) #rows
+ retval[i] = 0
+ #-- unpleasant need to initialize hash keys before counting
+ end
+ for i in eachrow(a) #rows
+ retval[i] += 1
+ end
+ return retval
+end
+
+function odd_string(a::Matrix{Int64}) ::Int64
+ mybag_a=mybag(a)
+ ctr=0
+ for i in eachrow(a)
+ #-- that makes 3 loops thru' a at least :-)
+ ctr += 1
+ if mybag_a[i]==1
+ return ctr
+ end
+ end
+end
+
+function odd_string(a::Vector{String}) ::String
+ myindx=odd_string(difference_array(a))
+ return a[myindx]
+end
+
+println(odd_string(["adc","wzy","abc"]))
+println(odd_string(["aaa","bob","ccc","ddd"]))
+
diff --git a/challenge-193/steve-g-lynn/raku/ch-2.p6 b/challenge-193/steve-g-lynn/raku/ch-2.p6
index c4d112b465..28694e2f9b 100755
--- a/challenge-193/steve-g-lynn/raku/ch-2.p6
+++ b/challenge-193/steve-g-lynn/raku/ch-2.p6
@@ -7,8 +7,8 @@ our %code-hash;
#-- assume input is conformable list of strings of same length
#-- with exactly one string with the wrong difference array
-say &odd-string(["adc","wzy","abc"]); #(1,1)
-say &odd-string(["aaa","bob","ccc","ddd"]); #(13,-13)
+say &odd-string(["adc","wzy","abc"]); #(abc)
+say &odd-string(["aaa","bob","ccc","ddd"]); #(bob)
multi sub difference-array( Str $s ) {
(1 .. $s.chars-1).map({%code-hash{$s.comb[$_]}-%code-hash{$s.comb[$_-1]}});