From 7d50d5bfc29183579944c4832c7aae93abe661d1 Mon Sep 17 00:00:00 2001 From: "Jaldhar H. Vyas" Date: Tue, 7 Oct 2025 18:39:18 -0400 Subject: Challenge 342 by Jaldhar H. Vyas. --- challenge-342/jaldhar-h-vyas/blog.txt | 1 + challenge-342/jaldhar-h-vyas/perl/ch-1.pl | 38 +++++++++++++++++++++++++++++ challenge-342/jaldhar-h-vyas/perl/ch-2.pl | 16 ++++++++++++ challenge-342/jaldhar-h-vyas/raku/ch-1.raku | 38 +++++++++++++++++++++++++++++ challenge-342/jaldhar-h-vyas/raku/ch-2.raku | 18 ++++++++++++++ 5 files changed, 111 insertions(+) create mode 100644 challenge-342/jaldhar-h-vyas/blog.txt create mode 100755 challenge-342/jaldhar-h-vyas/perl/ch-1.pl create mode 100755 challenge-342/jaldhar-h-vyas/perl/ch-2.pl create mode 100755 challenge-342/jaldhar-h-vyas/raku/ch-1.raku create mode 100755 challenge-342/jaldhar-h-vyas/raku/ch-2.raku diff --git a/challenge-342/jaldhar-h-vyas/blog.txt b/challenge-342/jaldhar-h-vyas/blog.txt new file mode 100644 index 0000000000..2a7aedaa97 --- /dev/null +++ b/challenge-342/jaldhar-h-vyas/blog.txt @@ -0,0 +1 @@ +https://www.braincells.com/perl/2025/10/perl_weekly_challenge_week_342.html diff --git a/challenge-342/jaldhar-h-vyas/perl/ch-1.pl b/challenge-342/jaldhar-h-vyas/perl/ch-1.pl new file mode 100755 index 0000000000..a86c807a6c --- /dev/null +++ b/challenge-342/jaldhar-h-vyas/perl/ch-1.pl @@ -0,0 +1,38 @@ +#!/usr/bin/perl +use 5.038; +use warnings; + +my $str = shift; + +my @letters = sort grep { /[[:lower:]]/ } split //, $str; +my @digits = sort grep { /[[:digit:]]/ } split //, $str; +my $digitFirst = scalar @digits >= scalar @letters; + +if (abs(scalar @letters - scalar @digits) > 1) { + say ""; + exit; +} + +my $result = ""; +my $lindex = 0; +my $dindex = 0; + +while ($lindex < scalar @letters || $dindex < scalar @digits) { + if ($digitFirst) { + if ($dindex < scalar @digits) { + $result .= $digits[$dindex++]; + } + if ($lindex < scalar @letters) { + $result .= $letters[$lindex++]; + } + } else { + if ($lindex < scalar @letters) { + $result .= $letters[$lindex++]; + } + if ($dindex < scalar @digits) { + $result .= $digits[$dindex++]; + } + } +} + +say $result; \ No newline at end of file diff --git a/challenge-342/jaldhar-h-vyas/perl/ch-2.pl b/challenge-342/jaldhar-h-vyas/perl/ch-2.pl new file mode 100755 index 0000000000..24e60a49f8 --- /dev/null +++ b/challenge-342/jaldhar-h-vyas/perl/ch-2.pl @@ -0,0 +1,16 @@ +#!/usr/bin/perl +use 5.038; +use warnings; + +my $str = shift; +my $max = -"Inf"; + +for my $i (1 .. (length $str) - 1) { + my $score = substr($str, 0, $i) =~ tr/0/0/ + substr($str, $i) =~ tr/1/1/; + + if ($score > $max) { + $max = $score; + } +} + +say $max; diff --git a/challenge-342/jaldhar-h-vyas/raku/ch-1.raku b/challenge-342/jaldhar-h-vyas/raku/ch-1.raku new file mode 100755 index 0000000000..041c4c6ff0 --- /dev/null +++ b/challenge-342/jaldhar-h-vyas/raku/ch-1.raku @@ -0,0 +1,38 @@ +#!/usr/bin/env raku + +sub MAIN( + Str $str +) { + my @letters = $str.comb.grep({ // }).sort; + my @digits = $str.comb.grep({ // }).sort; + my $digitFirst = @digits.elems >= @letters.elems; + + if (@letters.elems - @digits.elems).abs > 1 { + say ""; + exit; + } + + my $result = ""; + my $lindex = 0; + my $dindex = 0; + + while $lindex < @letters.elems || $dindex < @digits.elems { + if $digitFirst { + if $dindex < @digits.elems { + $result ~= @digits[$dindex++]; + } + if $lindex < @letters.elems { + $result ~= @letters[$lindex++]; + } + } else { + if $lindex < @letters.elems { + $result ~= @letters[$lindex++]; + } + if $dindex < @digits.elems { + $result ~= @digits[$dindex++]; + } + } + } + + say $result; +} \ No newline at end of file diff --git a/challenge-342/jaldhar-h-vyas/raku/ch-2.raku b/challenge-342/jaldhar-h-vyas/raku/ch-2.raku new file mode 100755 index 0000000000..426ce43972 --- /dev/null +++ b/challenge-342/jaldhar-h-vyas/raku/ch-2.raku @@ -0,0 +1,18 @@ +#!/usr/bin/raku + +sub MAIN( + $str, +) { + my $max = -∞; + + for (1 ..^ $str.chars) -> $i { + my $score = $str.substr(0, $i).match(/(0)/, :g).elems + + $str.substr($i).match(/(1)/, :g).elems; + + if ($score > $max) { + $max = $score; + } + } + + say $max; +} \ No newline at end of file -- cgit