aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-348/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-348/jaldhar-h-vyas/perl/ch-1.pl17
-rwxr-xr-xchallenge-348/jaldhar-h-vyas/perl/ch-2.pl27
-rwxr-xr-xchallenge-348/jaldhar-h-vyas/raku/ch-1.raku14
-rwxr-xr-xchallenge-348/jaldhar-h-vyas/raku/ch-2.raku27
5 files changed, 86 insertions, 0 deletions
diff --git a/challenge-348/jaldhar-h-vyas/blog.txt b/challenge-348/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..9c723ec713
--- /dev/null
+++ b/challenge-348/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2025/11/perl_weekly_challenge_week_348.html
diff --git a/challenge-348/jaldhar-h-vyas/perl/ch-1.pl b/challenge-348/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..deff7a35cb
--- /dev/null
+++ b/challenge-348/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,17 @@
+#!/usr/bin/perl
+use 5.038;
+use warnings;
+
+my $str = shift;
+
+my $mid = (length $str) / 2;
+my $first = substr $str, 0, $mid;
+my $second = substr $str, $mid;
+my $vowels = qr/([aeiouAEIOU])/;
+my $firstVowels = @{[ $first =~ /$vowels/g ]};
+my $secondVowels = @{[ $second =~ /$vowels/g ]};
+
+say 0+($firstVowels > 0 && $secondVowels > 0 && $firstVowels == $secondVowels)
+ ? 'true'
+ : 'false';
+
diff --git a/challenge-348/jaldhar-h-vyas/perl/ch-2.pl b/challenge-348/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..927f8a759f
--- /dev/null
+++ b/challenge-348/jaldhar-h-vyas/perl/ch-2.pl
@@ -0,0 +1,27 @@
+#!/usr/bin/perl
+use 5.038;
+use warnings;
+
+my ($source, $target) = @ARGV;
+
+my ($sourceHours, $sourceMinutes) = split /:/, $source;
+my ($targetHours, $targetMinutes) = split /:/, $target;
+
+if ($targetHours < $sourceHours) {
+ $targetHours += 24;
+}
+
+my $diff = ($targetHours * 60 + $targetMinutes) -
+ ($sourceHours * 60 + $sourceMinutes);
+my @ops = (60, 15, 5, 1);
+my $count = 0;
+
+for my $op (@ops) {
+ while ($diff >= $op) {
+ $diff -= $op;
+ $count++;
+ }
+}
+
+say $count;
+
diff --git a/challenge-348/jaldhar-h-vyas/raku/ch-1.raku b/challenge-348/jaldhar-h-vyas/raku/ch-1.raku
new file mode 100755
index 0000000000..6635e834bc
--- /dev/null
+++ b/challenge-348/jaldhar-h-vyas/raku/ch-1.raku
@@ -0,0 +1,14 @@
+#!/usr/bin/raku
+
+sub MAIN(
+ $str
+) {
+ my $mid = $str.chars / 2;
+ my $first = $str.substr(0, $mid);
+ my $second = $str.substr($mid);
+ my $vowels = / (<[a e i o u A E I O U]>) /;
+ my $firstVowels = $first.match($vowels, :g).elems;
+ my $secondVowels = $second.match($vowels, :g).elems;
+
+ say $firstVowels > 0 && $secondVowels > 0 && $firstVowels == $secondVowels;
+} \ No newline at end of file
diff --git a/challenge-348/jaldhar-h-vyas/raku/ch-2.raku b/challenge-348/jaldhar-h-vyas/raku/ch-2.raku
new file mode 100755
index 0000000000..14e78bd2cd
--- /dev/null
+++ b/challenge-348/jaldhar-h-vyas/raku/ch-2.raku
@@ -0,0 +1,27 @@
+#!/usr/bin/raku
+
+sub MAIN(
+ $source,
+ $target
+) {
+ my ($sourceHours, $sourceMinutes) = $source.split(':');
+ my ($targetHours, $targetMinutes) = $target.split(':');
+
+ if $targetHours < $sourceHours {
+ $targetHours += 24;
+ }
+
+ my $diff = ($targetHours * 60 + $targetMinutes) -
+ ($sourceHours * 60 + $sourceMinutes);
+ my @ops = 60, 15, 5, 1;
+ my $count = 0;
+
+ for @ops -> $op {
+ while $diff >= $op {
+ $diff -= $op;
+ $count++;
+ }
+ }
+
+ say $count;
+} \ No newline at end of file