diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-02-19 01:39:01 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-19 01:39:01 +0000 |
| commit | f3fdef3407b6a5b10fe8ef7cf0c525ea993bfeca (patch) | |
| tree | e6f05d4d22c3eda382846a6fd3eb1cf1811c9c9b | |
| parent | 2736b09ab475cac91ca5d36a4fb53ef11b3f3663 (diff) | |
| parent | 1739fb5fe04eccbc3b3cbf38bfd14460a1b34d10 (diff) | |
| download | perlweeklychallenge-club-f3fdef3407b6a5b10fe8ef7cf0c525ea993bfeca.tar.gz perlweeklychallenge-club-f3fdef3407b6a5b10fe8ef7cf0c525ea993bfeca.tar.bz2 perlweeklychallenge-club-f3fdef3407b6a5b10fe8ef7cf0c525ea993bfeca.zip | |
Merge pull request #9604 from kjetillll/challenge-256-kjetillll
https://theweeklychallenge.org/blog/perl-weekly-challenge-256/
| -rw-r--r-- | challenge-256/kjetillll/perl/ch-1.pl | 28 | ||||
| -rw-r--r-- | challenge-256/kjetillll/perl/ch-2.pl | 18 |
2 files changed, 46 insertions, 0 deletions
diff --git a/challenge-256/kjetillll/perl/ch-1.pl b/challenge-256/kjetillll/perl/ch-1.pl new file mode 100644 index 0000000000..1b0074490e --- /dev/null +++ b/challenge-256/kjetillll/perl/ch-1.pl @@ -0,0 +1,28 @@ +sub max_pairs { + my %maybe; + my $pairs = 0; + for( @_ ) { + my $r = reverse; + if( $maybe{ $r } > 0 ) { + $maybe{ $r }--; + $pairs++; + } + else { + $maybe{ $_ }++; + } + } + $pairs +} + +use Test::More; +for ( + ["ab", "de", "ed", "bc" => 1], + ["aa", "ba", "cd", "ed" => 0], + ["uv", "qp", "st", "vu", "mn", "pq" => 2], + ["uv", "uv", "qp", "st", "vu", "mn", "pq" => 2], + ["uv", "uv", "qp", "st", "vu", "mn", "pq", "vu" => 3] +){ + my $want = pop @$_; + is( max_pairs(@$_), $want ); +} +done_testing; diff --git a/challenge-256/kjetillll/perl/ch-2.pl b/challenge-256/kjetillll/perl/ch-2.pl new file mode 100644 index 0000000000..7ccb052e76 --- /dev/null +++ b/challenge-256/kjetillll/perl/ch-2.pl @@ -0,0 +1,18 @@ +sub merge { + my($a, $b, $s) = @_; + $a =~ s/.//s ? merge($b, $a, $s.$&) : "$s$b" +} + +use Test::More; +for( + [ "abcd", "1234", "a1b2c3d4" ], + [ "abc", "12345", "a1b2c345" ], + [ "abcde", "123", "a1b2c3de" ], + [ "", "xyz", "xyz" ], + [ "123", "", "123" ], + [ "", "", "" ], +){ + my( $str1, $str2, $want ) = @$_; + is( merge( $str1, $str2), $want ); +} +done_testing; |
