diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-11-17 16:37:00 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-17 16:37:00 +0000 |
| commit | 63bc5d761b2c504a3d55a3ec39adfb6c762bdd2a (patch) | |
| tree | 593136d5b4b086dea41c891eef54c5c19eabcfc4 | |
| parent | 7309ac414326e436ee729a71db0a1cb127041ead (diff) | |
| parent | 677731527faf177fb5d4122a35fb2fc44508b6b3 (diff) | |
| download | perlweeklychallenge-club-63bc5d761b2c504a3d55a3ec39adfb6c762bdd2a.tar.gz perlweeklychallenge-club-63bc5d761b2c504a3d55a3ec39adfb6c762bdd2a.tar.bz2 perlweeklychallenge-club-63bc5d761b2c504a3d55a3ec39adfb6c762bdd2a.zip | |
Merge pull request #11168 from wambash/challenge-week-295
solutions week 295
| -rw-r--r-- | challenge-295/wambash/raku/ch-1.raku | 18 | ||||
| -rw-r--r-- | challenge-295/wambash/raku/ch-2.raku | 28 |
2 files changed, 46 insertions, 0 deletions
diff --git a/challenge-295/wambash/raku/ch-1.raku b/challenge-295/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..c306fd91f7 --- /dev/null +++ b/challenge-295/wambash/raku/ch-1.raku @@ -0,0 +1,18 @@ +#!/usr/bin/env raku + +sub word-break ($str, +@words) { + $str.contains: /^ @words+ $/ +} + +multi MAIN (Bool :test($)!) { + use Test; + is word-break('weeklychallenge', 'challenge','weekly'), True; + is word-break('perlrakuperl', 'perl','raku'), True; + is word-break('sonsanddaughters', 'sons', 'sand', 'daughters'), False; + is word-break('sonssanddaughters', 'sons', 'sand', 'daughters'), True; + done-testing; +} + +multi MAIN ($str, +words) { + say word-break $str, words +} diff --git a/challenge-295/wambash/raku/ch-2.raku b/challenge-295/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..daa0978913 --- /dev/null +++ b/challenge-295/wambash/raku/ch-2.raku @@ -0,0 +1,28 @@ +#!/usr/bin/env raku + +sub jump ($from, +@ints) { + $from «+« ( 1..@ints[$from] ) +} + +sub jump-game (+@ints) { + (0,), { .unique.map: { |jump $_, @ints } } ... * + andthen .head: @ints.elems + andthen .first: -> @where { @ints.end ∈ @where }, :k +} + +multi MAIN (Bool :test($)!) { + use Test; + is jump( 2, (2,3,1,1,4) ), 3; + is jump( 0, (2,3,1,1,4) ), (1,2); + is jump( 1, (2,3,1,1,4) ), (2,3,4); + is jump-game(2,3,1,1,4),2; + is jump-game(2,3,0,4),2; + is jump-game(2,0,0,4),Nil; + is jump-game(1,1,1,1,1,1,0),6; + is jump-game(0,0),Nil; + done-testing; +} + +multi MAIN (+@ints) { + say jump-game( @ints ) // -1 +} |
