From 1743ec2a7282b5ba6ab3c2100e949344b332e54a Mon Sep 17 00:00:00 2001 From: Jan Krňávek Date: Fri, 23 May 2025 14:02:26 +0200 Subject: solutions week 321 --- challenge-321/wambash/raku/ch-1.raku | 21 +++++++++++++++++++++ challenge-321/wambash/raku/ch-2.raku | 25 +++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 challenge-321/wambash/raku/ch-1.raku create mode 100644 challenge-321/wambash/raku/ch-2.raku diff --git a/challenge-321/wambash/raku/ch-1.raku b/challenge-321/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..76e316ecfe --- /dev/null +++ b/challenge-321/wambash/raku/ch-1.raku @@ -0,0 +1,21 @@ +#!/usr/bin/env raku + +sub distinct-average (+nums) { + nums + andthen .sort + andthen .cache Z+ .reverse + andthen .unique + andthen .elems +} + +multi MAIN (Bool :test($)!) { + use Test; + is distinct-average(^6), 1; + is distinct-average(0,2,4,8,3,5), 2; + is distinct-average(7,3,1,0,5,9), 2; + done-testing; +} + +multi MAIN (+nums) { + say distinct-average nums; +} diff --git a/challenge-321/wambash/raku/ch-2.raku b/challenge-321/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..c024d0d2ef --- /dev/null +++ b/challenge-321/wambash/raku/ch-2.raku @@ -0,0 +1,25 @@ +#!/usr/bin/env raku +sub backspace ($str) { + $str.subst: / .<~~>?\# /,:d:g; # +} + +sub backspace-compare (+str) { + str + andthen .map: &backspace + andthen [eq] $_ +} + +multi MAIN (Bool :test($)!) { + use Test; + is backspace('ab##'), ''; + is backspace('a#b#'), ''; + is backspace-compare('ab#c','ad#c'), True; + is backspace-compare('ab##','a#b#'), True; + is backspace-compare('ab##','a#b#'), True; + is backspace-compare('a#b','c'), False; + done-testing; +} + +multi MAIN (+str) { + say backspace-compare str; +} -- cgit