aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-07-14 04:47:23 +0100
committerGitHub <noreply@github.com>2025-07-14 04:47:23 +0100
commit5f3c9ad6fa8a058bb9c997dc84bfb02c675d9f62 (patch)
tree88cb583eced784f7544142a3319241c0523aa3b3
parent4d1e957469cc80dbf592c23ba65837db391c40fd (diff)
parent545f264ca1c54eb72c00c3c4ba0b8d17d3433c25 (diff)
downloadperlweeklychallenge-club-5f3c9ad6fa8a058bb9c997dc84bfb02c675d9f62.tar.gz
perlweeklychallenge-club-5f3c9ad6fa8a058bb9c997dc84bfb02c675d9f62.tar.bz2
perlweeklychallenge-club-5f3c9ad6fa8a058bb9c997dc84bfb02c675d9f62.zip
Merge pull request #12337 from jaldhar/challenge-329
Challenge 329 by Jaldhar H. Vyas.
-rw-r--r--challenge-329/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-329/jaldhar-h-vyas/perl/ch-1.pl25
-rwxr-xr-xchallenge-329/jaldhar-h-vyas/perl/ch-2.pl32
-rwxr-xr-xchallenge-329/jaldhar-h-vyas/raku/ch-1.sh3
-rwxr-xr-xchallenge-329/jaldhar-h-vyas/raku/ch-2.raku22
5 files changed, 83 insertions, 0 deletions
diff --git a/challenge-329/jaldhar-h-vyas/blog.txt b/challenge-329/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..1db14ba041
--- /dev/null
+++ b/challenge-329/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2025/07/perl_weekly_challenge_week_329.html
diff --git a/challenge-329/jaldhar-h-vyas/perl/ch-1.pl b/challenge-329/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..d8c2ca5b06
--- /dev/null
+++ b/challenge-329/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,25 @@
+#!/usr/bin/perl
+use 5.038;
+use warnings;
+use builtin qw/ true /;
+no warnings qw/experimental::builtin/;
+
+sub orderedUnique(@list) {
+ my @ordered;
+ my %seen;
+
+ for my $elem (@list) {
+ unless (exists $seen{$elem}) {
+ $seen{$elem} = true;
+ push @ordered, $elem;
+ }
+ }
+
+ return @ordered;
+}
+
+my $str = shift;
+$str =~ s/\D/ /g;
+$str =~ s/^\s+ || \s+$//g;
+
+say join q{, }, orderedUnique(split /\s+/, $str);
diff --git a/challenge-329/jaldhar-h-vyas/perl/ch-2.pl b/challenge-329/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..19d73c72ad
--- /dev/null
+++ b/challenge-329/jaldhar-h-vyas/perl/ch-2.pl
@@ -0,0 +1,32 @@
+#!/usr/bin/perl
+use 5.038;
+use warnings;
+use builtin qw/ true /;
+no warnings qw/experimental::builtin/;
+
+my $str = shift;
+my %substrings;
+
+for my $i (0 .. length($str) - 1) {
+ for my $j ($i .. length($str)) {
+ $substrings{substr($str, $i, $j)} = true;
+ }
+}
+
+for my $substring (sort { length $b <=> length $a } keys %substrings) {
+ my %lower;
+ my %upper;
+
+ for my $c (split //, $substring) {
+ if ($c eq lc $c) {
+ $lower{$c}++;
+ } else {
+ $upper{lc $c}++;
+ }
+ }
+
+ if ((join q{}, sort keys %lower) eq (join q{}, sort keys %upper)) {
+ say $substring;
+ last;
+ }
+}
diff --git a/challenge-329/jaldhar-h-vyas/raku/ch-1.sh b/challenge-329/jaldhar-h-vyas/raku/ch-1.sh
new file mode 100755
index 0000000000..955de81b59
--- /dev/null
+++ b/challenge-329/jaldhar-h-vyas/raku/ch-1.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+raku -e '(S:g/\D/ / given @*ARGS[0]).trim.split(/\s+/).unique.join(q{, }).say' "$@"
diff --git a/challenge-329/jaldhar-h-vyas/raku/ch-2.raku b/challenge-329/jaldhar-h-vyas/raku/ch-2.raku
new file mode 100755
index 0000000000..c83f8e50c6
--- /dev/null
+++ b/challenge-329/jaldhar-h-vyas/raku/ch-2.raku
@@ -0,0 +1,22 @@
+#!/usr/bin/raku
+
+sub MAIN(
+ $str
+) {
+ my @substrings;
+
+ for 0 .. $str.chars - 1 -> $i {
+ for $i .. $str.chars -> $j {
+ @substrings.push($str.substr($i, $j));
+ }
+ }
+
+ for @substrings.unique.sort({ $^b.chars <=> $^a.chars }) -> $substring {
+ $substring.comb.classify({$_ eq $_.lc ?? 'lower' !! 'upper'}, :into(my %case));
+
+ if %case<lower>.values.unique.sort.join eq %case<upper>.values.unique.sort.join.lc {
+ say $substring;
+ last;
+ }
+ }
+} \ No newline at end of file