From c9dbbd391eb2c127b05b4f4d5b4fca991d836e9d Mon Sep 17 00:00:00 2001 From: Jan Krňávek Date: Sun, 11 Dec 2022 13:01:34 +0100 Subject: solutions week 194 --- challenge-194/wambash/raku/ch-1.raku | 28 ++++++++++++++++++++++++++++ challenge-194/wambash/raku/ch-2.raku | 23 +++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 challenge-194/wambash/raku/ch-1.raku create mode 100644 challenge-194/wambash/raku/ch-2.raku 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 +} -- cgit