diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-11-28 13:51:24 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-28 13:51:24 +0000 |
| commit | 156b092ae83b37a4fb5f0779fcb2834010acd9ed (patch) | |
| tree | c4106ec1daedc7940f977b9f44791efb20e8da98 | |
| parent | 6f099a71fb621bc59ca1b3f438d2768122e59105 (diff) | |
| parent | d2355bc18c2d96d12418aac28a69e9a63e503410 (diff) | |
| download | perlweeklychallenge-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.raku | 10 | ||||
| -rw-r--r-- | challenge-193/mark-anderson/raku/ch-2.raku | 25 |
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> } +} |
