aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCY Fung <fungcheokyin@gmail.com>2024-02-13 11:32:46 +0800
committerCY Fung <fungcheokyin@gmail.com>2024-02-13 11:32:46 +0800
commit3725ec5aa548e33d37026dada79ffe166ede2dc0 (patch)
tree709fec7c302488b045f253f8e223811ee802149e
parent8f2017a73332b0c2bc7cc9ca78d6287e9627ebe9 (diff)
downloadperlweeklychallenge-club-3725ec5aa548e33d37026dada79ffe166ede2dc0.tar.gz
perlweeklychallenge-club-3725ec5aa548e33d37026dada79ffe166ede2dc0.tar.bz2
perlweeklychallenge-club-3725ec5aa548e33d37026dada79ffe166ede2dc0.zip
Week 256
-rw-r--r--challenge-256/cheok-yin-fung/perl/ch-1.pl21
-rw-r--r--challenge-256/cheok-yin-fung/perl/ch-2.pl19
2 files changed, 40 insertions, 0 deletions
diff --git a/challenge-256/cheok-yin-fung/perl/ch-1.pl b/challenge-256/cheok-yin-fung/perl/ch-1.pl
new file mode 100644
index 0000000000..3d93e85977
--- /dev/null
+++ b/challenge-256/cheok-yin-fung/perl/ch-1.pl
@@ -0,0 +1,21 @@
+# The Weekly Challenge 256
+# Task 1 Maximum Pairs
+use v5.30.0;
+use warnings;
+
+sub mp {
+ my @data = @_;
+ my $p = 0;
+ my @r_data = map {scalar reverse $_} @data;
+ for my $i (0..$#data) {
+ for my $j ($i+1..$#r_data) {
+ $p++ if $data[$i] eq $r_data[$j];
+ }
+ }
+ return $p;
+}
+
+use Test::More tests=>3;
+ok mp("ab", "de", "ed", "bc") == 1;
+ok mp("aa", "ba", "cd", "ed") == 0;
+ok mp("uv", "qp", "st", "vu", "mn", "pq") == 2;
diff --git a/challenge-256/cheok-yin-fung/perl/ch-2.pl b/challenge-256/cheok-yin-fung/perl/ch-2.pl
new file mode 100644
index 0000000000..2017674dfe
--- /dev/null
+++ b/challenge-256/cheok-yin-fung/perl/ch-2.pl
@@ -0,0 +1,19 @@
+# The Weekly Challenge 256
+# Task 2 Merge Strings
+use v5.30.0;
+use warnings;
+use List::MoreUtils qw/zip/;
+sub ms {
+ my $str1 = $_[0];
+ my $str2 = $_[1];
+ my @arr1 = split "", $str1;
+ my @arr2 = split "", $str2;
+ my @arr = grep { defined($_) } zip @arr1, @arr2;
+ my $str = join "", @arr;
+ return $str;
+}
+
+use Test::More tests=>3;
+ok ms("abcd", "1234") eq "a1b2c3d4";
+ok ms("abc", "12345") eq "a1b2c345";
+ok ms("abcde", "123") eq "a1b2c3de";