diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-06-06 13:40:56 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-06 13:40:56 +0100 |
| commit | 22371534e4e913cf9643acef24a009a7f08e6e35 (patch) | |
| tree | f8ab060e059c3c68870a20b14fcd39558b2d8720 /challenge-115 | |
| parent | bca8f2f3f0a1dcbffdcedde92ec782dc11b937c2 (diff) | |
| parent | ce2a306f1127ca23cba0c5553b32f11118dda096 (diff) | |
| download | perlweeklychallenge-club-22371534e4e913cf9643acef24a009a7f08e6e35.tar.gz perlweeklychallenge-club-22371534e4e913cf9643acef24a009a7f08e6e35.tar.bz2 perlweeklychallenge-club-22371534e4e913cf9643acef24a009a7f08e6e35.zip | |
Merge pull request #4202 from wambash/challenge-week-115
solutions week 115
Diffstat (limited to 'challenge-115')
| -rw-r--r-- | challenge-115/wambash/raku/ch-1.raku | 30 | ||||
| -rw-r--r-- | challenge-115/wambash/raku/ch-2.raku | 25 |
2 files changed, 55 insertions, 0 deletions
diff --git a/challenge-115/wambash/raku/ch-1.raku b/challenge-115/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..0a0e1e3687 --- /dev/null +++ b/challenge-115/wambash/raku/ch-1.raku @@ -0,0 +1,30 @@ +#!/usr/bin/env raku + + +sub string-chain-iter (@a,@s) { + @a + andthen .map: { |$_ X, (@s.Bag ∖ $_).keys.grep: -> $x { $x.starts-with: .tail.comb.tail} }\ + andthen .map: *.Slip +} + +sub string-chain (+@s) { + my &iter = &string-chain-iter.assuming(*,@s); + [@s.head], *.&iter ... * + andthen .[@s.end] + andthen .first: { .cache; .head.starts-with: .tail.comb.tail } +} + + +multi MAIN (*@s) { + say +so string-chain @s +} + +multi MAIN (:test($)!) { + use Test; + is-deeply string-chain-iter(('abc',), ('dea','cd','cec')).any, ('abc','cd') & ('abc','cec'); + is-deeply string-chain-iter(('abd','dea',), ('dea','abd')), (('abd','dea'), ('dea','abd')); + is string-chain('abc', 'dea','cd','cec'),('abc','cec','cd','dea'); + is string-chain('abc', 'dea','cd',), ('abc','cd','dea'); + is string-chain('ade', 'fgh','cbd',), Nil; + done-testing; +} diff --git a/challenge-115/wambash/raku/ch-2.raku b/challenge-115/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..a2100bfcae --- /dev/null +++ b/challenge-115/wambash/raku/ch-2.raku @@ -0,0 +1,25 @@ +#!/usr/bin/env raku + + +sub largest-multiple (+@n) { + with @n.grep(* %% 2).min -> $min-even { + @n.Bag ∖ $min-even + andthen .kxxv.sort.reverse + andthen .join ~ $min-even + } +} + + +multi MAIN (:test($)!) { + use Test; + is largest-multiple(1,0,2,6), 6210; + is largest-multiple(1,4,2,8), 8412; + is largest-multiple(1,4,7,6), 7614; + is largest-multiple(1,4,7,4), 7414; + is largest-multiple(1,3,7,9), '9731Inf'; + done-testing; +} + +multi MAIN (*@n) { + say largest-multiple @n; +} |
