diff options
| author | Niels van Dijke <perlboy@cpan.org> | 2025-09-29 07:39:56 +0000 |
|---|---|---|
| committer | Niels van Dijke <perlboy@cpan.org> | 2025-09-29 07:39:56 +0000 |
| commit | 803fe69759e355ade4977192b20866c188637f3e (patch) | |
| tree | c517a5d02c0b51a7cc59cb38cbe013ae3edb40e4 | |
| parent | dd9dab4686fc230480c1ba07dc81492311c1d41f (diff) | |
| download | perlweeklychallenge-club-803fe69759e355ade4977192b20866c188637f3e.tar.gz perlweeklychallenge-club-803fe69759e355ade4977192b20866c188637f3e.tar.bz2 perlweeklychallenge-club-803fe69759e355ade4977192b20866c188637f3e.zip | |
w341 - Task 1 & 2 (Perl)
| -rwxr-xr-x | challenge-341/perlboy1967/perl/ch1.pl | 34 | ||||
| -rwxr-xr-x | challenge-341/perlboy1967/perl/ch2.pl | 33 |
2 files changed, 67 insertions, 0 deletions
diff --git a/challenge-341/perlboy1967/perl/ch1.pl b/challenge-341/perlboy1967/perl/ch1.pl new file mode 100755 index 0000000000..a59ba86df6 --- /dev/null +++ b/challenge-341/perlboy1967/perl/ch1.pl @@ -0,0 +1,34 @@ +#!/bin/perl + +=pod + +L<https://theweeklychallenge.org/blog/perl-weekly-challenge-341#TASK1> + +Author: Niels 'PerlBoy' van Dijke + +Task 1: Broken Keyboard +Submitted by: Mohammad Sajid Anwar + +You are given a string containing English letters only and also you are given broken keys. + +Write a script to return the total words in the given sentence can be typed completely. + +=cut + +use Test2::V0 qw(-no_srand); +use exact 'v5.32', -signatures; + +sub brokenKeyboard ($str,@keys) { + my @w = split /\s+/,$str; + return scalar @w if (@keys == 0); + my $re = '['.join('',@keys).']'; + scalar grep !/$re/i, @w; +} + +is(brokenKeyboard('Hello World',qw(d)),1,'Example 1'); +is(brokenKeyboard('apple banana cherry',qw(a e)),0,'Example 2'); +is(brokenKeyboard('Coding is fun',qw()),3,'Example 3'); +is(brokenKeyboard('The Weekly Challenge',qw(ab)),2,'Example 4'); +is(brokenKeyboard('Perl and Python',qw(p)),1,'Example 5'); + +done_testing; diff --git a/challenge-341/perlboy1967/perl/ch2.pl b/challenge-341/perlboy1967/perl/ch2.pl new file mode 100755 index 0000000000..6869404cf3 --- /dev/null +++ b/challenge-341/perlboy1967/perl/ch2.pl @@ -0,0 +1,33 @@ +#!/bin/perl + +=pod + +L<https://theweeklychallenge.org/blog/perl-weekly-challenge-341#TASK2> + +Author: Niels 'PerlBoy' van Dijke + +Task 2: Reverse Prefix +Submitted by: Mohammad Sajid Anwar + +You are given a string, $str and a character in the given string, $char. + +Write a script to reverse the prefix upto the first occurrence of the given +$char in the given string $str and return the new string. + +=cut + +use Test2::V0 qw(-no_srand); +use exact 'v5.32', -signatures; + +sub reversePrefix ($str,$char) { + $str = $char.reverse ($1).$2 if ($str =~ m#^(.*?)$char(.*)#); + return $str; +} + +is(reversePrefix('programming','g'),'gorpramming','Example 1'); +is(reversePrefix('hello','h'),'hello','Example 2'); +is(reversePrefix('abcdefghij','h'),'hgfedcbaij','Example 3'); +is(reversePrefix('reverse','s'),'srevere','Example 4'); +is(reversePrefix('perl','r'),'repl','Example 5'); + +done_testing; |
