aboutsummaryrefslogtreecommitdiff
path: root/challenge-002
diff options
context:
space:
mode:
authorlakpatashi <lakpatashi@gmail.com>2021-04-13 22:14:22 +0530
committerlakpatashi <lakpatashi@gmail.com>2021-04-13 22:14:22 +0530
commit04cceed50aa1edcd78ca3f7fc872d88b499be7af (patch)
treecc1b6d7ec31be1c370e7b66508428fb3d61becda /challenge-002
parentd86a2af7b9adee8bf20485ce237dec6935deddec (diff)
downloadperlweeklychallenge-club-04cceed50aa1edcd78ca3f7fc872d88b499be7af.tar.gz
perlweeklychallenge-club-04cceed50aa1edcd78ca3f7fc872d88b499be7af.tar.bz2
perlweeklychallenge-club-04cceed50aa1edcd78ca3f7fc872d88b499be7af.zip
Revision to challenge #002 perl
Diffstat (limited to 'challenge-002')
-rwxr-xr-xchallenge-002/lakpatashi/perl/ch-1.pl6
-rwxr-xr-xchallenge-002/lakpatashi/perl/ch-2.pl47
2 files changed, 35 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;
}