diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-07-14 04:47:23 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-14 04:47:23 +0100 |
| commit | 5f3c9ad6fa8a058bb9c997dc84bfb02c675d9f62 (patch) | |
| tree | 88cb583eced784f7544142a3319241c0523aa3b3 | |
| parent | 4d1e957469cc80dbf592c23ba65837db391c40fd (diff) | |
| parent | 545f264ca1c54eb72c00c3c4ba0b8d17d3433c25 (diff) | |
| download | perlweeklychallenge-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.txt | 1 | ||||
| -rwxr-xr-x | challenge-329/jaldhar-h-vyas/perl/ch-1.pl | 25 | ||||
| -rwxr-xr-x | challenge-329/jaldhar-h-vyas/perl/ch-2.pl | 32 | ||||
| -rwxr-xr-x | challenge-329/jaldhar-h-vyas/raku/ch-1.sh | 3 | ||||
| -rwxr-xr-x | challenge-329/jaldhar-h-vyas/raku/ch-2.raku | 22 |
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 |
