aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2023-12-25 21:25:16 +0000
committerGitHub <noreply@github.com>2023-12-25 21:25:16 +0000
commit04f0671fa28daf3bb3cc1adccb036d6e4724470b (patch)
tree8aec34a09a2e599fad28ae4c81518cdbe3ae9481
parentc643911cfe88d0c48b7b360df7a3b633ea2698c1 (diff)
parentf52c911f9ada18fd83cda2b5651a63741b714e81 (diff)
downloadperlweeklychallenge-club-04f0671fa28daf3bb3cc1adccb036d6e4724470b.tar.gz
perlweeklychallenge-club-04f0671fa28daf3bb3cc1adccb036d6e4724470b.tar.bz2
perlweeklychallenge-club-04f0671fa28daf3bb3cc1adccb036d6e4724470b.zip
Merge pull request #9294 from zapwai/branch-for-249
Week 249
-rw-r--r--challenge-249/zapwai/perl/ch-1.pl23
-rw-r--r--challenge-249/zapwai/perl/ch-2.pl34
2 files changed, 57 insertions, 0 deletions
diff --git a/challenge-249/zapwai/perl/ch-1.pl b/challenge-249/zapwai/perl/ch-1.pl
new file mode 100644
index 0000000000..6550ba4305
--- /dev/null
+++ b/challenge-249/zapwai/perl/ch-1.pl
@@ -0,0 +1,23 @@
+use v5.30;
+my @ints = (3, 2, 3, 2, 2, 2);
+#my @ints = (1, 2, 3, 4);
+say "Input: @ints";
+print "Output: ";
+my %h;
+$h{$_}++ for (@ints);
+my $cnt = 0;
+for my $k ( values %h ) {
+ if ($k % 2 != 0) {
+ say "()";
+ last;
+ } else {
+ $cnt++;
+ }
+}
+if ($cnt == scalar keys %h) {
+ foreach my $k ( keys %h ) {
+ my $d = $h{$k} / 2;
+ print "($k, $k) " x $d;
+ }
+ print "\n";
+}
diff --git a/challenge-249/zapwai/perl/ch-2.pl b/challenge-249/zapwai/perl/ch-2.pl
new file mode 100644
index 0000000000..7b6c161aa9
--- /dev/null
+++ b/challenge-249/zapwai/perl/ch-2.pl
@@ -0,0 +1,34 @@
+use v5.30;
+my $str = "IDID";
+# my $str = "III";
+# my $str = "DDI";
+my @s = split "", $str;
+my @p = (0 .. @s);
+say "Input: \$str = $str";
+print "Output: ";
+my $cnt;
+do {
+ $cnt = 0;
+ for my $i (0 .. $#s) {
+ if ($s[$i] eq 'I') {
+ if ($p[$i] > $p[$i+1]) {
+ swap($i, \@p);
+ $cnt++;
+ }
+ } else {
+ if ($p[$i] < $p[$i+1]) {
+ swap($i, \@p);
+ $cnt++;
+ }
+ }
+ }
+} while ($cnt != 0);
+
+say "@p";
+
+sub swap {
+ my ($i, $ref) = @_;
+ my $val = $$ref[$i];
+ $$ref[$i] = $$ref[$i + 1];
+ $$ref[$i + 1] = $val;
+}