aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2023-05-09 21:09:21 +0100
committerGitHub <noreply@github.com>2023-05-09 21:09:21 +0100
commit96aeba6e38695a11b39dccf7092a5dc40e7790e3 (patch)
tree27b3d01cf7ce8773bc4dd5b9888d1d64856accff
parent7b5f58837456022c9fcc8b3f9200822114b6b922 (diff)
parenta1d9855b0219647655adae8b83ebbdbb3df5d607 (diff)
downloadperlweeklychallenge-club-96aeba6e38695a11b39dccf7092a5dc40e7790e3.tar.gz
perlweeklychallenge-club-96aeba6e38695a11b39dccf7092a5dc40e7790e3.tar.bz2
perlweeklychallenge-club-96aeba6e38695a11b39dccf7092a5dc40e7790e3.zip
Merge pull request #8047 from PerlBoy1967/branch-for-challenge-216
w216 - Task 1
-rwxr-xr-xchallenge-216/perlboy1967/perl/ch1.pl48
1 files changed, 48 insertions, 0 deletions
diff --git a/challenge-216/perlboy1967/perl/ch1.pl b/challenge-216/perlboy1967/perl/ch1.pl
new file mode 100755
index 0000000000..6d62b56317
--- /dev/null
+++ b/challenge-216/perlboy1967/perl/ch1.pl
@@ -0,0 +1,48 @@
+#!/bin/perl
+
+=pod
+
+The Weekly Challenge - 216
+- https://theweeklychallenge.org/blog/perl-weekly-challenge-216
+
+Author: Niels 'PerlBoy' van Dijke
+
+Task 1: Registration Number
+Submitted by: Mohammad S Anwar
+
+You are given a list of words and a random registration number.
+
+Write a script to find all the words in the given list that has every letter in the
+given registration number.
+
+=cut
+
+use v5.16;
+
+use common::sense;
+
+use Test::More;
+use Test::Deep;
+
+sub registrationNumber ($\@) {
+ my $rnRE = sprintf '[%s]',
+ join('].*?[',
+ sort grep /[a-z]/,split //,lc shift);
+ map { $_->[0] }
+ grep { $_->[1] =~ /$rnRE/ }
+ map { [$_,join('',sort split //,lc)] }
+ @{$_[0]};
+}
+
+is_deeply([registrationNumber('AB1 2CD',@{[qw{abc abcd bcd}]})],
+ [qw{abcd}]);
+is_deeply([registrationNumber('007 JB', @{[qw{job james bjorg}]})],
+ [qw{job bjorg}]);
+is_deeply([registrationNumber('C7 RA2', @{[qw{crack road rac}]})],
+ [qw{crack rac}]);
+is_deeply([registrationNumber('T7 RR9', @{[qw{tracker roadster rac}]})],
+ [qw{tracker roadster}]);
+is_deeply([registrationNumber('P3R L58',@{[qw{perl raku}]})],
+ [qw{perl}]);
+
+done_testing;