diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2023-12-25 21:25:16 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-25 21:25:16 +0000 |
| commit | 04f0671fa28daf3bb3cc1adccb036d6e4724470b (patch) | |
| tree | 8aec34a09a2e599fad28ae4c81518cdbe3ae9481 | |
| parent | c643911cfe88d0c48b7b360df7a3b633ea2698c1 (diff) | |
| parent | f52c911f9ada18fd83cda2b5651a63741b714e81 (diff) | |
| download | perlweeklychallenge-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.pl | 23 | ||||
| -rw-r--r-- | challenge-249/zapwai/perl/ch-2.pl | 34 |
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; +} |
