diff options
| author | Kjetil Skotheim <kjetil.skotheim@sikt.no> | 2024-02-19 02:28:18 +0100 |
|---|---|---|
| committer | Kjetil Skotheim <kjetil.skotheim@sikt.no> | 2024-02-19 02:28:18 +0100 |
| commit | 1739fb5fe04eccbc3b3cbf38bfd14460a1b34d10 (patch) | |
| tree | 2d61622ec66839f7985ec2ffdf3d8a3cd161d7da | |
| parent | 71c25e55bc7d4e6adaaad7659e88853b71009526 (diff) | |
| download | perlweeklychallenge-club-1739fb5fe04eccbc3b3cbf38bfd14460a1b34d10.tar.gz perlweeklychallenge-club-1739fb5fe04eccbc3b3cbf38bfd14460a1b34d10.tar.bz2 perlweeklychallenge-club-1739fb5fe04eccbc3b3cbf38bfd14460a1b34d10.zip | |
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; |
