diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-04-22 16:46:14 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-22 16:46:14 +0100 |
| commit | 1ff9b2330948b35b5d3701ebfdefc438a35fe2b4 (patch) | |
| tree | 984c16784b1c231dfabacad82f3168ed27bbadde | |
| parent | e416b053c5b43f4bb2478d1f52d2110e0d7fabc4 (diff) | |
| parent | a48710fe285fb09653b83d6a9b917037249eee1d (diff) | |
| download | perlweeklychallenge-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.pl | 21 | ||||
| -rw-r--r-- | challenge-318/vinod-k/perl/ch-2.pl | 34 |
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; +} |
