diff options
| author | Jan Krňávek <Jan.Krnavek@gmail.com> | 2022-12-11 13:01:34 +0100 |
|---|---|---|
| committer | Jan Krňávek <Jan.Krnavek@gmail.com> | 2022-12-11 13:01:34 +0100 |
| commit | c9dbbd391eb2c127b05b4f4d5b4fca991d836e9d (patch) | |
| tree | 42f14a8c1344178b40e1afbf4b94d9bb33001bc7 | |
| parent | f821b9460f215c9ef863c7af2b53bb9be180f4bd (diff) | |
| download | perlweeklychallenge-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.raku | 28 | ||||
| -rw-r--r-- | challenge-194/wambash/raku/ch-2.raku | 23 |
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 +} |
