diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-09-29 12:37:36 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-29 12:37:36 +0100 |
| commit | fbe5df3ffb6d341f13cf6fa161987abb8f21c7ae (patch) | |
| tree | f9ff8238648716d04c2827659278c8902518f546 | |
| parent | 413d7a735036e755b9c9f296021d70099247e551 (diff) | |
| parent | dcb9a699f65ea3d7663152c29bd64b8a6cf6ac0d (diff) | |
| download | perlweeklychallenge-club-fbe5df3ffb6d341f13cf6fa161987abb8f21c7ae.tar.gz perlweeklychallenge-club-fbe5df3ffb6d341f13cf6fa161987abb8f21c7ae.tar.bz2 perlweeklychallenge-club-fbe5df3ffb6d341f13cf6fa161987abb8f21c7ae.zip | |
Merge pull request #12753 from PerlBoy1967/branch-for-challenge-341
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..f3dbfcc126 --- /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) { + return 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; |
