aboutsummaryrefslogtreecommitdiff
path: root/challenge-193
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-193')
-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> }
+}