diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-06-30 13:48:25 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-30 13:48:25 +0100 |
| commit | ac462fe73e707400cdb61788af8401f21adff9b8 (patch) | |
| tree | 2657a1fd2825def88982cda75b958a32098f8ec4 | |
| parent | 5fc0c6973b01bdad871f1d6edef5be929d8fe42e (diff) | |
| parent | 6377b93f01c683d67acf3619feb42f1a50c7726f (diff) | |
| download | perlweeklychallenge-club-ac462fe73e707400cdb61788af8401f21adff9b8.tar.gz perlweeklychallenge-club-ac462fe73e707400cdb61788af8401f21adff9b8.tar.bz2 perlweeklychallenge-club-ac462fe73e707400cdb61788af8401f21adff9b8.zip | |
Merge pull request #10338 from wambash/challenge-week-275
solutions week 275
| -rw-r--r-- | challenge-275/wambash/raku/ch-1.raku | 21 | ||||
| -rw-r--r-- | challenge-275/wambash/raku/ch-2.raku | 22 |
2 files changed, 43 insertions, 0 deletions
diff --git a/challenge-275/wambash/raku/ch-1.raku b/challenge-275/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..35d52992f2 --- /dev/null +++ b/challenge-275/wambash/raku/ch-1.raku @@ -0,0 +1,21 @@ +#!/usr/bin/env raku + +sub broken-keys ($sentence,+@keys) { + $sentence + andthen .words + andthen .grep: { .fc.contains: none @keys».fc }\ + andthen .elems +} + +multi MAIN (Bool :test($)!) { + use Test; + is broken-keys('Perl Weekly Challenge', <l a>), 0; + is broken-keys('Perl and Raku', <a>), 1; + is broken-keys('Well done Team PWC', <l o>), 2; + is broken-keys('The joys of polyglottism', <T>), 2; + done-testing; +} + +multi MAIN ($sentence,+@keys) { + say broken-keys $sentence, @keys +} diff --git a/challenge-275/wambash/raku/ch-2.raku b/challenge-275/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..44557c32fe --- /dev/null +++ b/challenge-275/wambash/raku/ch-2.raku @@ -0,0 +1,22 @@ +#!/usr/bin/env raku + +sub replace-digits ($str) { + $str.subst( + / $<letter>=\w <( $<shifts>=(\d)+ /, + { chrs .<shifts>.map: -> \x { x + .<letter>.ord } }, + :g + ) +} + +multi MAIN (Bool :test($)!) { + use Test; + is replace-digits('a1c1e1'), 'abcdef'; + is replace-digits('a1b2c3d4'), 'abbdcfdh'; + is replace-digits('b2b'), 'bdb'; + is replace-digits('a16z'), 'abgz'; + done-testing; +} + +multi MAIN ($str) { + say replace-digits $str +} |
