From 3725ec5aa548e33d37026dada79ffe166ede2dc0 Mon Sep 17 00:00:00 2001 From: CY Fung Date: Tue, 13 Feb 2024 11:32:46 +0800 Subject: Week 256 --- challenge-256/cheok-yin-fung/perl/ch-1.pl | 21 +++++++++++++++++++++ challenge-256/cheok-yin-fung/perl/ch-2.pl | 19 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 challenge-256/cheok-yin-fung/perl/ch-1.pl create mode 100644 challenge-256/cheok-yin-fung/perl/ch-2.pl 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"; -- cgit