diff options
| author | CY Fung <fungcheokyin@gmail.com> | 2024-01-28 20:47:04 +0800 |
|---|---|---|
| committer | CY Fung <fungcheokyin@gmail.com> | 2024-01-28 20:47:04 +0800 |
| commit | 33dcd8be189e911df40a39fa97f481f02c06bd84 (patch) | |
| tree | 969b91739d081abc0abcd3b5689c96a8011a11af /challenge-253 | |
| parent | 73704e823a01f00d461dac41dfae852471186d34 (diff) | |
| download | perlweeklychallenge-club-33dcd8be189e911df40a39fa97f481f02c06bd84.tar.gz perlweeklychallenge-club-33dcd8be189e911df40a39fa97f481f02c06bd84.tar.bz2 perlweeklychallenge-club-33dcd8be189e911df40a39fa97f481f02c06bd84.zip | |
Week 253
Diffstat (limited to 'challenge-253')
| -rw-r--r-- | challenge-253/cheok-yin-fung/perl/ch-1.pl | 18 | ||||
| -rw-r--r-- | challenge-253/cheok-yin-fung/perl/ch-2.pl | 31 |
2 files changed, 49 insertions, 0 deletions
diff --git a/challenge-253/cheok-yin-fung/perl/ch-1.pl b/challenge-253/cheok-yin-fung/perl/ch-1.pl new file mode 100644 index 0000000000..6f3bd5ec43 --- /dev/null +++ b/challenge-253/cheok-yin-fung/perl/ch-1.pl @@ -0,0 +1,18 @@ +# The Weekly Challenge 253 +# Task 1 Split Strings +use v5.30.0; +use warnings; + +sub ss { + my @arr = $_[0]->@*; + my $sep = $_[1]; + my $Sep = $sep; + $Sep =~ s/(\W)/\\$1/g; + my @new = grep {$_} split /$Sep/, join $sep, @arr; + return [@new]; +} + +use Test2::V0; +is ss(["one.two.three","four.five","six"], "."), ["one", "two", "three", "four","five", "six"]; +is ss(['$perl$$', '$$raku$'], '$'), ["perl", "raku"]; +done_testing(); diff --git a/challenge-253/cheok-yin-fung/perl/ch-2.pl b/challenge-253/cheok-yin-fung/perl/ch-2.pl new file mode 100644 index 0000000000..b3afab1541 --- /dev/null +++ b/challenge-253/cheok-yin-fung/perl/ch-2.pl @@ -0,0 +1,31 @@ +# The Weekly Challenge 253 +# Task 2 Weakest Row +use v5.30.0; +use warnings; + +sub wr { + my $matrix = $_[0]; + my @rows = $matrix->@*; + my @weight = map {scalar grep {$_} $_->@*} @rows; + my @ord = sort {$weight[$a] <=> $weight[$b] || $a<=>$b} 0..$#rows; + return [@ord]; +} + +use Test2::V0; +is wr([ + [1, 1, 0, 0, 0], + [1, 1, 1, 1, 0], + [1, 0, 0, 0, 0], + [1, 1, 0, 0, 0], + [1, 1, 1, 1, 1] + ] +), [2,0,3,1,4]; + +is wr([ + [1, 0, 0, 0], + [1, 1, 1, 1], + [1, 0, 0, 0], + [1, 0, 0, 0] + ] +), [0,2,3,1]; +done_testing(); |
