aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-07-14 00:21:07 +0100
committerGitHub <noreply@github.com>2025-07-14 00:21:07 +0100
commitaa1a1b092e8a2607da7d13a9b8d3d398e0d083e8 (patch)
tree7e94057249bb3d6348d3a74023b4f456adfd5b4a
parentd997d6d4b8a899b472cb02f14b0c6157a43fe1e4 (diff)
parent8b465f0ff14c66daa8805aa774805cf7402f0fec (diff)
downloadperlweeklychallenge-club-aa1a1b092e8a2607da7d13a9b8d3d398e0d083e8.tar.gz
perlweeklychallenge-club-aa1a1b092e8a2607da7d13a9b8d3d398e0d083e8.tar.bz2
perlweeklychallenge-club-aa1a1b092e8a2607da7d13a9b8d3d398e0d083e8.zip
Merge pull request #12329 from wambash/challenge-week-329
Challenge week 329
-rw-r--r--challenge-329/wambash/raku/ch-1.raku19
-rw-r--r--challenge-329/wambash/raku/ch-2.raku29
2 files changed, 48 insertions, 0 deletions
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..b6f3967ae5
--- /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
+ );
+
+ $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;
+}