aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-06-30 13:48:25 +0100
committerGitHub <noreply@github.com>2024-06-30 13:48:25 +0100
commitac462fe73e707400cdb61788af8401f21adff9b8 (patch)
tree2657a1fd2825def88982cda75b958a32098f8ec4
parent5fc0c6973b01bdad871f1d6edef5be929d8fe42e (diff)
parent6377b93f01c683d67acf3619feb42f1a50c7726f (diff)
downloadperlweeklychallenge-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.raku21
-rw-r--r--challenge-275/wambash/raku/ch-2.raku22
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
+}