aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-11-28 13:51:24 +0000
committerGitHub <noreply@github.com>2022-11-28 13:51:24 +0000
commit156b092ae83b37a4fb5f0779fcb2834010acd9ed (patch)
treec4106ec1daedc7940f977b9f44791efb20e8da98
parent6f099a71fb621bc59ca1b3f438d2768122e59105 (diff)
parentd2355bc18c2d96d12418aac28a69e9a63e503410 (diff)
downloadperlweeklychallenge-club-156b092ae83b37a4fb5f0779fcb2834010acd9ed.tar.gz
perlweeklychallenge-club-156b092ae83b37a4fb5f0779fcb2834010acd9ed.tar.bz2
perlweeklychallenge-club-156b092ae83b37a4fb5f0779fcb2834010acd9ed.zip
Merge pull request #7173 from andemark/branch-for-challenge-193
Challenge 193 Solutions (Raku)
-rw-r--r--challenge-193/mark-anderson/raku/ch-1.raku10
-rw-r--r--challenge-193/mark-anderson/raku/ch-2.raku25
2 files changed, 35 insertions, 0 deletions
diff --git a/challenge-193/mark-anderson/raku/ch-1.raku b/challenge-193/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..b0946333d5
--- /dev/null
+++ b/challenge-193/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,10 @@
+#!/usr/bin/env raku
+use Test;
+
+is-deeply binary-string(2), ('00', '01', '10', '11');
+is-deeply binary-string(3), ('000', '001', '010', '011', '100', '101', '110', '111');
+
+sub binary-string($n)
+{
+ map { .fmt: "\%0{$n}b" }, ^2**$n
+}
diff --git a/challenge-193/mark-anderson/raku/ch-2.raku b/challenge-193/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..36ed6496b9
--- /dev/null
+++ b/challenge-193/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,25 @@
+#!/usr/bin/env raku
+use Test;
+
+is odd-string(< adc wzy abc >), 'abc';
+is odd-string(< bob aaa zzz yyy xxx >), 'bob';
+is odd-string(< aaa bob zzz yyy xxx >), 'bob';
+is odd-string(< aaa zzz bob yyy xxx >), 'bob';
+is odd-string(< aaa zzz yyy bob xxx >), 'bob';
+is odd-string(< aaa zzz yyy xxx bob >), 'bob';
+
+sub odd-string(*@s)
+{
+ my $b = BagHash.new;
+ my $h = Hash.new;
+
+ for @s
+ {
+ my $diff = .comb.rotor(2 => -1).map({ .[1].ord - .[0].ord }).join(' ');
+ $b.add: $diff;
+ $h{ $diff } = $_;
+ last if $b.elems == 2 and $b.total > 2;
+ }
+
+ $h{ $b.antipairs.Hash<1> }
+}