aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Anderson <mark@andemark.io>2024-08-12 06:35:29 +0000
committerMark Anderson <mark@andemark.io>2024-08-12 06:35:29 +0000
commit42c34f22a83f225b6bbda86eb52d49f034e8fb3b (patch)
treee28907c22e84523a98eaca0b85dc58d80968f697
parent419a326807744bba437997c323b33875c75a65e4 (diff)
downloadperlweeklychallenge-club-42c34f22a83f225b6bbda86eb52d49f034e8fb3b.tar.gz
perlweeklychallenge-club-42c34f22a83f225b6bbda86eb52d49f034e8fb3b.tar.bz2
perlweeklychallenge-club-42c34f22a83f225b6bbda86eb52d49f034e8fb3b.zip
Challenge 282 Solutions (Raku)
-rw-r--r--challenge-282/mark-anderson/raku/ch-1.raku15
-rw-r--r--challenge-282/mark-anderson/raku/ch-2.raku12
2 files changed, 27 insertions, 0 deletions
diff --git a/challenge-282/mark-anderson/raku/ch-1.raku b/challenge-282/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..2d79cf61dc
--- /dev/null
+++ b/challenge-282/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,15 @@
+#!/usr/bin/env raku
+use Test;
+
+is-deeply good-integer(12344456), ("444",);
+is good-integer(1233334), -1;
+is-deeply good-integer(10020003), ("000",);
+is-deeply good-integer(77711233334445556678999), ("777", "444", "555", "999");
+
+sub good-integer($int)
+{
+ my $m = $int ~~ m:ov/ (^ || \d) ( (\d) $0 $0 ) (\d || $)
+ <?{ all($0 !== $1[0], $1[0] !== $2) }> /;
+
+ return $m>>.[1]>>.Str || -1
+}
diff --git a/challenge-282/mark-anderson/raku/ch-2.raku b/challenge-282/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..1d7d04df4e
--- /dev/null
+++ b/challenge-282/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,12 @@
+#!/usr/bin/env raku
+use Test;
+
+is changing-keys("pPeERrLl"), 3;
+is changing-keys("rRr"), 0;
+is changing-keys("GoO"), 1;
+is changing-keys("ILooooooVeEEpppPErrrrrLLLLlLL"), 8;
+
+sub changing-keys($str)
+{
+ $str.lc.comb.squish.elems - 1
+}