diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-11-29 09:47:12 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-11-29 09:47:12 +0000 |
| commit | a9df9b0b61d40ea6ad71c153c17bd7c0447f9784 (patch) | |
| tree | ba2b963f57909fbe5b1565cf167502aeeaa14160 | |
| parent | 16679b5bf7a9b5c3559f8a8f01d0e27095962371 (diff) | |
| parent | f2f9df40a193fd2e1eb65b525e54a7b974deb97d (diff) | |
| download | perlweeklychallenge-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-x | challenge-193/steve-g-lynn/julia/ch-1.sh | 2 | ||||
| -rwxr-xr-x | challenge-193/steve-g-lynn/julia/ch-2.jl | 62 | ||||
| -rwxr-xr-x | challenge-193/steve-g-lynn/raku/ch-2.p6 | 4 |
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]}}); |
