aboutsummaryrefslogtreecommitdiff
path: root/challenge-190
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-11-07 14:05:15 +0000
committerGitHub <noreply@github.com>2022-11-07 14:05:15 +0000
commit92028b1596f8f63f4b47ff9b0ec7f1574fb862d0 (patch)
tree2be2e5b4b94d70c66da330a5ca8cf1443274720c /challenge-190
parentedf0a2415a732dd1eb34fb5560f248df427e8886 (diff)
parent1b25498f4abe3f5dba99bc8b1190263c14b87ffe (diff)
downloadperlweeklychallenge-club-92028b1596f8f63f4b47ff9b0ec7f1574fb862d0.tar.gz
perlweeklychallenge-club-92028b1596f8f63f4b47ff9b0ec7f1574fb862d0.tar.bz2
perlweeklychallenge-club-92028b1596f8f63f4b47ff9b0ec7f1574fb862d0.zip
Merge pull request #7047 from andemark/branch-for-challenge-190
Challenge 190 Solutions (Raku)
Diffstat (limited to 'challenge-190')
-rw-r--r--challenge-190/mark-anderson/raku/ch-1.raku12
-rw-r--r--challenge-190/mark-anderson/raku/ch-2.raku24
2 files changed, 36 insertions, 0 deletions
diff --git a/challenge-190/mark-anderson/raku/ch-1.raku b/challenge-190/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..16b5ff297a
--- /dev/null
+++ b/challenge-190/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,12 @@
+#!/usr/bin/env raku
+use Test;
+
+ok capital-detection("Perl");
+ok capital-detection("TPF");
+nok capital-detection("PyThon");
+ok capital-detection("raku");
+
+sub capital-detection($s)
+{
+ any($s eq $s.tclc, $s eq $s.lc, $s eq $s.uc)
+}
diff --git a/challenge-190/mark-anderson/raku/ch-2.raku b/challenge-190/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..be1685915e
--- /dev/null
+++ b/challenge-190/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,24 @@
+#!/usr/bin/env raku
+use Test;
+
+is-deeply decode-counts(11), < AA K >;
+is-deeply decode-counts(1115), < AAAE AAO AKE KAE KO >;
+is-deeply decode-counts(127), < ABG LG >;
+
+# Not sure how to deal with zeros but this is what the program does.
+is-deeply decode-counts(1002001), < ABA ATA JBA JTA >;
+
+sub decode-counts($n)
+{
+ sub composition($_)
+ {
+ gather .fmt('%0' ~ $n.chars ~ 'b') ~~ m:g/(.)$0* <?{ take $/.pos - $/.from }>/
+ }
+
+ sort map
+ {
+ my $c := $n.comb.rotor(composition($_))>>.join>>.Int;
+ next unless all($c) ~~ 1..26;
+ [~] $c.map({ chr($_+64) });
+ }, ^2**($n.chars-1)
+}