diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2023-05-09 21:09:21 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-09 21:09:21 +0100 |
| commit | 96aeba6e38695a11b39dccf7092a5dc40e7790e3 (patch) | |
| tree | 27b3d01cf7ce8773bc4dd5b9888d1d64856accff | |
| parent | 7b5f58837456022c9fcc8b3f9200822114b6b922 (diff) | |
| parent | a1d9855b0219647655adae8b83ebbdbb3df5d607 (diff) | |
| download | perlweeklychallenge-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-x | challenge-216/perlboy1967/perl/ch1.pl | 48 |
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; |
