diff options
| author | CY Fung <fungcheokyin@gmail.com> | 2024-02-13 11:32:46 +0800 |
|---|---|---|
| committer | CY Fung <fungcheokyin@gmail.com> | 2024-02-13 11:32:46 +0800 |
| commit | 3725ec5aa548e33d37026dada79ffe166ede2dc0 (patch) | |
| tree | 709fec7c302488b045f253f8e223811ee802149e | |
| parent | 8f2017a73332b0c2bc7cc9ca78d6287e9627ebe9 (diff) | |
| download | perlweeklychallenge-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.pl | 21 | ||||
| -rw-r--r-- | challenge-256/cheok-yin-fung/perl/ch-2.pl | 19 |
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"; |
