aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-07-14 00:23:36 +0100
committerGitHub <noreply@github.com>2025-07-14 00:23:36 +0100
commitcfc29da01361a70856a2fb01a62ca362684b8aae (patch)
treeb4b16707e16376504597640941d1d9155b0d5264
parent10228d93465ad4a65d9ae17a8a84a3a487670380 (diff)
parent56516e8bea7d7bfb51468faa1fa529ccd70f4cac (diff)
downloadperlweeklychallenge-club-cfc29da01361a70856a2fb01a62ca362684b8aae.tar.gz
perlweeklychallenge-club-cfc29da01361a70856a2fb01a62ca362684b8aae.tar.bz2
perlweeklychallenge-club-cfc29da01361a70856a2fb01a62ca362684b8aae.zip
Merge pull request #12332 from arnesom/branch-for-challenge-329
Arne Sommer
-rw-r--r--challenge-329/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-329/arne-sommer/raku/ch-1.raku10
-rwxr-xr-xchallenge-329/arne-sommer/raku/ch-2.raku31
-rwxr-xr-xchallenge-329/arne-sommer/raku/counter-integers10
-rwxr-xr-xchallenge-329/arne-sommer/raku/nice-string31
5 files changed, 83 insertions, 0 deletions
diff --git a/challenge-329/arne-sommer/blog.txt b/challenge-329/arne-sommer/blog.txt
new file mode 100644
index 0000000000..b1bd5aa033
--- /dev/null
+++ b/challenge-329/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/counter-nice.html
diff --git a/challenge-329/arne-sommer/raku/ch-1.raku b/challenge-329/arne-sommer/raku/ch-1.raku
new file mode 100755
index 0000000000..750085b5d7
--- /dev/null
+++ b/challenge-329/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,10 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($str where $str ~~ /^<[ a..z 0 .. 9 ]>+$/,
+ :v(:$verbose));
+
+my @ints = $str.split(/<[a..z]>+/).grep: * ~~ /\d+/;
+
+say ": Integers: { @ints.join(", ") }" if $verbose;
+
+say @ints.unique.join(", ");
diff --git a/challenge-329/arne-sommer/raku/ch-2.raku b/challenge-329/arne-sommer/raku/ch-2.raku
new file mode 100755
index 0000000000..0a03d2b25b
--- /dev/null
+++ b/challenge-329/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,31 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($str where $str ~~ /^<[ a..z A .. Z ]>+$/,
+ :v(:$verbose));
+
+my @str = $str.comb;
+my $current = @str.shift;
+my @nice;
+
+while @str.elems
+{
+ if @str[0].lc eq $current.substr(0,1).lc
+ {
+ $current ~= @str.shift;
+ }
+ else
+ {
+ @nice.push: $current if $current.comb.unique.elems == 2;
+ $current = @str.shift;
+ }
+}
+
+@nice.push($current) if $current.comb.unique.elems == 2;
+
+say ": Nice: { @nice.join(", ") }" if $verbose;
+
+@nice .= sort({ $^b.chars <=> $^a.chars });
+
+say ": Nice by length: { @nice.join(", ") }" if $verbose;
+
+say @nice.first // "";
diff --git a/challenge-329/arne-sommer/raku/counter-integers b/challenge-329/arne-sommer/raku/counter-integers
new file mode 100755
index 0000000000..750085b5d7
--- /dev/null
+++ b/challenge-329/arne-sommer/raku/counter-integers
@@ -0,0 +1,10 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($str where $str ~~ /^<[ a..z 0 .. 9 ]>+$/,
+ :v(:$verbose));
+
+my @ints = $str.split(/<[a..z]>+/).grep: * ~~ /\d+/;
+
+say ": Integers: { @ints.join(", ") }" if $verbose;
+
+say @ints.unique.join(", ");
diff --git a/challenge-329/arne-sommer/raku/nice-string b/challenge-329/arne-sommer/raku/nice-string
new file mode 100755
index 0000000000..0a03d2b25b
--- /dev/null
+++ b/challenge-329/arne-sommer/raku/nice-string
@@ -0,0 +1,31 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($str where $str ~~ /^<[ a..z A .. Z ]>+$/,
+ :v(:$verbose));
+
+my @str = $str.comb;
+my $current = @str.shift;
+my @nice;
+
+while @str.elems
+{
+ if @str[0].lc eq $current.substr(0,1).lc
+ {
+ $current ~= @str.shift;
+ }
+ else
+ {
+ @nice.push: $current if $current.comb.unique.elems == 2;
+ $current = @str.shift;
+ }
+}
+
+@nice.push($current) if $current.comb.unique.elems == 2;
+
+say ": Nice: { @nice.join(", ") }" if $verbose;
+
+@nice .= sort({ $^b.chars <=> $^a.chars });
+
+say ": Nice by length: { @nice.join(", ") }" if $verbose;
+
+say @nice.first // "";