From e2eb93aca73fa4fdf0ae970e1049ee7285b4e324 Mon Sep 17 00:00:00 2001 From: Jan Krňávek Date: Sun, 13 Jul 2025 13:25:28 +0200 Subject: solutions week 329 --- challenge-329/wambash/raku/ch-1.raku | 19 +++++++++++++++++++ challenge-329/wambash/raku/ch-2.raku | 29 +++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 challenge-329/wambash/raku/ch-1.raku create mode 100644 challenge-329/wambash/raku/ch-2.raku diff --git a/challenge-329/wambash/raku/ch-1.raku b/challenge-329/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..39f015b725 --- /dev/null +++ b/challenge-329/wambash/raku/ch-1.raku @@ -0,0 +1,19 @@ +#!/usr/bin/env raku + +sub counter-integers ($str) { + $str + andthen .comb: /\d+/ + andthen .unique +} + +multi MAIN (Bool :test($)!) { + use Test; + is counter-integers('the1weekly2challenge2'), (1,2); + is counter-integers('go21od1lu5c7k'), (21, 1, 5,7); + is counter-integers('4p3e2r1l'), (4,3,2,1); + done-testing; +} + +multi MAIN ($str) { + put counter-integers $str; +} diff --git a/challenge-329/wambash/raku/ch-2.raku b/challenge-329/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..a910e9bca3 --- /dev/null +++ b/challenge-329/wambash/raku/ch-2.raku @@ -0,0 +1,29 @@ +#!/usr/bin/env raku + +sub nice-string ($str) { + my @nice = ( + $str + andthen .comb(/<:Lu>/)».lc ∩ .comb(/<:Ll>/) + andthen .keys + ); + #note @nice; + $str + andthen .comb: rx:i/<@nice>+/ + andthen .elems <= 1 ?? |$_ // '' !! .map: &nice-string + andthen .max: *.chars +} + +multi MAIN (Bool :test($)!) { + use Test; + is nice-string('YaaAho'), 'aaA'; + is nice-string('cC'), 'cC'; + is nice-string('A'), ''; + is nice-string('Cc'), 'Cc'; + is nice-string('YaaAhaAo'), 'aaA'; + is nice-string('YaaAhaAHo'), 'aaAhaAH'; + done-testing; +} + +multi MAIN (+$str) { + say nice-string $str; +} -- cgit