aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-02-19 01:39:01 +0000
committerGitHub <noreply@github.com>2024-02-19 01:39:01 +0000
commitf3fdef3407b6a5b10fe8ef7cf0c525ea993bfeca (patch)
treee6f05d4d22c3eda382846a6fd3eb1cf1811c9c9b
parent2736b09ab475cac91ca5d36a4fb53ef11b3f3663 (diff)
parent1739fb5fe04eccbc3b3cbf38bfd14460a1b34d10 (diff)
downloadperlweeklychallenge-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.pl28
-rw-r--r--challenge-256/kjetillll/perl/ch-2.pl18
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;