aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-04-22 16:46:14 +0100
committerGitHub <noreply@github.com>2025-04-22 16:46:14 +0100
commit1ff9b2330948b35b5d3701ebfdefc438a35fe2b4 (patch)
tree984c16784b1c231dfabacad82f3168ed27bbadde
parente416b053c5b43f4bb2478d1f52d2110e0d7fabc4 (diff)
parenta48710fe285fb09653b83d6a9b917037249eee1d (diff)
downloadperlweeklychallenge-club-1ff9b2330948b35b5d3701ebfdefc438a35fe2b4.tar.gz
perlweeklychallenge-club-1ff9b2330948b35b5d3701ebfdefc438a35fe2b4.tar.bz2
perlweeklychallenge-club-1ff9b2330948b35b5d3701ebfdefc438a35fe2b4.zip
Merge pull request #11919 from vinodk89/branch-for-challenge-318
Solutions for PWC-318
-rw-r--r--challenge-318/vinod-k/perl/ch-1.pl21
-rw-r--r--challenge-318/vinod-k/perl/ch-2.pl34
2 files changed, 55 insertions, 0 deletions
diff --git a/challenge-318/vinod-k/perl/ch-1.pl b/challenge-318/vinod-k/perl/ch-1.pl
new file mode 100644
index 0000000000..d3c953a3b2
--- /dev/null
+++ b/challenge-318/vinod-k/perl/ch-1.pl
@@ -0,0 +1,21 @@
+use strict;
+use warnings;
+
+use constant LIMIT => 2;
+my $str = "aaabcddddeeff";
+
+my @array = split(//, $str);
+my $size = scalar @array;
+
+my $group = $array[0];
+
+for (my $i = 1; $i < $size; $i++) {
+ if ($array[$i] eq $array[$i - 1]) {
+ $group .= $array[$i];
+ } else {
+ print "$group\n" if length($group) > LIMIT;
+ $group = $array[$i];
+ }
+}
+
+print "$group\n" if length($group) > LIMIT;
diff --git a/challenge-318/vinod-k/perl/ch-2.pl b/challenge-318/vinod-k/perl/ch-2.pl
new file mode 100644
index 0000000000..73201b7043
--- /dev/null
+++ b/challenge-318/vinod-k/perl/ch-2.pl
@@ -0,0 +1,34 @@
+use strict;
+use warnings;
+
+my @source = (3, 2, 1, 4);
+my @target = (1, 2, 3, 4);
+
+if (transform_with_reverse(\@source, \@target)) {
+ print "true\n";
+} else {
+ print "false\n";
+}
+
+sub transform_with_reverse {
+ my ($src, $tgt) = @_;
+ my $n = @$src;
+
+ my $start = 0;
+ $start++ while $start < $n && $src->[$start] == $tgt->[$start];
+
+ return 1 if $start == $n;
+
+ my $end = $n - 1;
+ $end-- while $end >= 0 && $src->[$end] == $tgt->[$end];
+
+ my @reversed = @$src;
+ @reversed[$start..$end] = reverse @reversed[$start..$end];
+
+ if ("@reversed" eq "@$tgt") {
+ print "Reverse elements: $start-$end\n";
+ return 1;
+ }
+
+ return 0;
+}