aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Anderson <mark@andemark.io>2025-07-21 13:44:58 +0000
committerMark Anderson <mark@andemark.io>2025-07-21 13:44:58 +0000
commite1648be733a48c6c5c8a76149dfcd922a3873b17 (patch)
treeb87356ab70c41b86d9919a72fd70f9fa3b8499f3
parente0f7e800fc8f1b2cb50896852a0a3ed61980f510 (diff)
downloadperlweeklychallenge-club-e1648be733a48c6c5c8a76149dfcd922a3873b17.tar.gz
perlweeklychallenge-club-e1648be733a48c6c5c8a76149dfcd922a3873b17.tar.bz2
perlweeklychallenge-club-e1648be733a48c6c5c8a76149dfcd922a3873b17.zip
Challenge 331 Solutions (Raku)
-rw-r--r--challenge-331/mark-anderson/raku/ch-1.raku11
-rw-r--r--challenge-331/mark-anderson/raku/ch-2.raku23
2 files changed, 34 insertions, 0 deletions
diff --git a/challenge-331/mark-anderson/raku/ch-1.raku b/challenge-331/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..a2bc216d54
--- /dev/null
+++ b/challenge-331/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,11 @@
+#!/usr/bin/env raku
+use Test;
+
+is last-word("The Weekly Challenge"), 9;
+is last-word(" Hello World "), 5;
+is last-word("Let's begin the fun"), 3;
+
+sub last-word($str)
+{
+ $str.words.tail.chars
+}
diff --git a/challenge-331/mark-anderson/raku/ch-2.raku b/challenge-331/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..229f003d8c
--- /dev/null
+++ b/challenge-331/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,23 @@
+#!/usr/bin/env raku
+use Test;
+
+ok buddy-strings("fuck", "fcuk");
+nok buddy-strings("love", "love");
+ok buddy-strings("fodo", "food");
+ok buddy-strings("feed", "feed");
+
+sub buddy-strings($s, $t)
+{
+ given $s.comb >>eq<< $t.comb
+ {
+ return $s.comb.Bag.values.any >= 2 if .all;
+
+ given .grep(*.not, :k)
+ {
+ return False unless .elems == 2;
+
+ return $s.substr(.[0], 1) ~ $s.substr(.[1], 1) eq
+ $t.substr(.[1], 1) ~ $t.substr(.[0], 1)
+ }
+ }
+}