diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-04-13 17:57:58 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-13 17:57:58 +0100 |
| commit | faa08ec995987c06f6d3b2f6835fc4f4d6dca176 (patch) | |
| tree | cc1b6d7ec31be1c370e7b66508428fb3d61becda | |
| parent | 2411f71bf31f34b12d1aa29599e9c0bf27906634 (diff) | |
| parent | 04cceed50aa1edcd78ca3f7fc872d88b499be7af (diff) | |
| download | perlweeklychallenge-club-faa08ec995987c06f6d3b2f6835fc4f4d6dca176.tar.gz perlweeklychallenge-club-faa08ec995987c06f6d3b2f6835fc4f4d6dca176.tar.bz2 perlweeklychallenge-club-faa08ec995987c06f6d3b2f6835fc4f4d6dca176.zip | |
Merge pull request #3891 from lakpatashi/branch-002
Revision to challenge #002 perl
| -rwxr-xr-x | challenge-002/lakpatashi/perl/ch-1.pl | 6 | ||||
| -rwxr-xr-x | challenge-002/lakpatashi/perl/ch-2.pl | 47 | ||||
| -rw-r--r-- | challenge-003/lakpatashi/README | 1 |
3 files changed, 36 insertions, 18 deletions
diff --git a/challenge-002/lakpatashi/perl/ch-1.pl b/challenge-002/lakpatashi/perl/ch-1.pl index 0b3cf1b5cc..a599171f61 100755 --- a/challenge-002/lakpatashi/perl/ch-1.pl +++ b/challenge-002/lakpatashi/perl/ch-1.pl @@ -5,9 +5,9 @@ use warnings; # PART 1 -my $var = 'Perl Weekly Challenge'; +my $var = '000012340000'; print "Before:: $var\n"; -my $repCount = $var =~ s/e/E/g; +my $repCount = $var =~ s/^0+//g; print "After :: $var\n"; -print "Pattern matched:: $repCount\n"; +print "char Replaced:: $repCount\n"; diff --git a/challenge-002/lakpatashi/perl/ch-2.pl b/challenge-002/lakpatashi/perl/ch-2.pl index aa05b41cf7..ef4bec3468 100755 --- a/challenge-002/lakpatashi/perl/ch-2.pl +++ b/challenge-002/lakpatashi/perl/ch-2.pl @@ -4,22 +4,39 @@ use strict; use warnings; # PART 2 +use List::Util qw(min max sum); +use Data::Dumper qw(Dumper); +my %digit; +my @keys = ( (0..9),('A'..'Y') ); +my @values = (0..35); +@digit{@keys}=@values; +my %digitRev = reverse %digit; +#print Dumper \%digitRev; -use feature "switch"; +my $num1 = 'A1K3'; +print "Given base35 no:: $num1\n"; +print "converted to int no:: ",intToBase35($num1),"\n"; -for my $i (1..20){ - given($i){ - when(not $i%15){ - print "fizzbuzz\n"; - } - when(not $i%3){ - print "fizz\n"; - } - when(not $i%5){ - print "buzz\n"; - } - default{ - print "$i\n"; - } +my $num2 = 430678; +print "Given int no:: $num2\n"; +print "converted to base35 no:: ",base35ToInt($num2),"\n"; + + +sub intToBase35{ + my @num = split '', shift; + @num = reverse @num; + @num = map { $digit{$num[$_]} * 35**$_ } 0..$#num ; + return sum @num; +} + +sub base35ToInt{ + my $num = shift; + my @arr; + while($num > 35){ + unshift @arr, $num%35; + $num = int($num/35); } + unshift @arr, $num; + @arr = map { $digitRev{$_} } @arr; + return join '',@arr; } diff --git a/challenge-003/lakpatashi/README b/challenge-003/lakpatashi/README new file mode 100644 index 0000000000..bc153bd576 --- /dev/null +++ b/challenge-003/lakpatashi/README @@ -0,0 +1 @@ +Solution by lakpatashi |
