aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Krňávek <Jan.Krnavek@gmail.com>2022-12-11 13:01:34 +0100
committerJan Krňávek <Jan.Krnavek@gmail.com>2022-12-11 13:01:34 +0100
commitc9dbbd391eb2c127b05b4f4d5b4fca991d836e9d (patch)
tree42f14a8c1344178b40e1afbf4b94d9bb33001bc7
parentf821b9460f215c9ef863c7af2b53bb9be180f4bd (diff)
downloadperlweeklychallenge-club-c9dbbd391eb2c127b05b4f4d5b4fca991d836e9d.tar.gz
perlweeklychallenge-club-c9dbbd391eb2c127b05b4f4d5b4fca991d836e9d.tar.bz2
perlweeklychallenge-club-c9dbbd391eb2c127b05b4f4d5b4fca991d836e9d.zip
solutions week 194
-rw-r--r--challenge-194/wambash/raku/ch-1.raku28
-rw-r--r--challenge-194/wambash/raku/ch-2.raku23
2 files changed, 51 insertions, 0 deletions
diff --git a/challenge-194/wambash/raku/ch-1.raku b/challenge-194/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..ee77b8b4ad
--- /dev/null
+++ b/challenge-194/wambash/raku/ch-1.raku
@@ -0,0 +1,28 @@
+#!/usr/bin/env raku
+
+sub is-valid-time ($s) {
+ my ($hour,$minute) = $s.split: ':';
+ so try DateTime.now.clone: :$hour, :$minute
+}
+
+sub digital-clock ($s) {
+ 9...0
+ andthen .first: {
+ is-valid-time $s.trans: '?' => "$_"
+ }
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is digital-clock('?5:00'),1;
+ is digital-clock('?3:00'),2;
+ is digital-clock('1?:00'),9;
+ is digital-clock('2?:00'),3;
+ is digital-clock('12:?5'),5;
+ is digital-clock('12:59'),9;
+ done-testing;
+}
+
+multi MAIN ($s) {
+ say digital-clock $s
+}
diff --git a/challenge-194/wambash/raku/ch-2.raku b/challenge-194/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..a30a8128a6
--- /dev/null
+++ b/challenge-194/wambash/raku/ch-2.raku
@@ -0,0 +1,23 @@
+#!/usr/bin/env raku
+
+sub frequency-equalizer ($s) {
+ $s
+ andthen .comb
+ andthen .Bag
+ andthen all .values.minmax == 2, .maxpairs == 1
+ andthen .so
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is frequency-equalizer('abbc'), True;
+ is frequency-equalizer('xyzyyxz'), True;
+ is frequency-equalizer('xzxz'), False;
+ is frequency-equalizer('aabbcccddd'), False;
+ is frequency-equalizer('aabbccccdd'), False;
+ done-testing;
+}
+
+multi MAIN ($s) {
+ say +frequency-equalizer $s
+}