aboutsummaryrefslogtreecommitdiff
path: root/challenge-042
diff options
context:
space:
mode:
authorndelucca <nazadelucca@gmail.com>2020-01-06 20:59:31 -0300
committerndelucca <nazadelucca@gmail.com>2020-01-06 20:59:31 -0300
commit21c17e0674839e04f366adda4fef548855f826c4 (patch)
tree2a996a543db1253f620c69df161fb3b485476c3d /challenge-042
parente015238170e27c690e4f46646b6687f600fd0c59 (diff)
downloadperlweeklychallenge-club-21c17e0674839e04f366adda4fef548855f826c4.tar.gz
perlweeklychallenge-club-21c17e0674839e04f366adda4fef548855f826c4.tar.bz2
perlweeklychallenge-club-21c17e0674839e04f366adda4fef548855f826c4.zip
challenge-042/ndelucca
Diffstat (limited to 'challenge-042')
-rw-r--r--challenge-042/ndelucca/perl5/ch-1.pl80
-rw-r--r--challenge-042/ndelucca/perl5/ch-2.pl78
2 files changed, 158 insertions, 0 deletions
diff --git a/challenge-042/ndelucca/perl5/ch-1.pl b/challenge-042/ndelucca/perl5/ch-1.pl
new file mode 100644
index 0000000000..8bd6d5549c
--- /dev/null
+++ b/challenge-042/ndelucca/perl5/ch-1.pl
@@ -0,0 +1,80 @@
+#!/usr/bin/perl
+
+# TASK #1
+# Octal Number System
+
+# Write a script to print decimal number 0 to 50 in Octal Number System.
+# For example:
+# Decimal 0 = Octal 0
+# Decimal 1 = Octal 1
+# Decimal 2 = Octal 2
+# Decimal 3 = Octal 3
+# Decimal 4 = Octal 4
+# Decimal 5 = Octal 5
+# Decimal 6 = Octal 6
+# Decimal 7 = Octal 7
+# Decimal 8 = Octal 10
+# and so on.
+
+use strict;
+use warnings;
+
+my $top = shift @ARGV || 50;
+my $holder = 0;
+
+for (0..$top){
+ print "dec: $_ -> oct: ". $holder++ . "\n";
+ $holder+=2 if 8 == substr $holder, -1;
+}
+
+# dec: 0 -> oct: 0
+# dec: 1 -> oct: 1
+# dec: 2 -> oct: 2
+# dec: 3 -> oct: 3
+# dec: 4 -> oct: 4
+# dec: 5 -> oct: 5
+# dec: 6 -> oct: 6
+# dec: 7 -> oct: 7
+# dec: 8 -> oct: 10
+# dec: 9 -> oct: 11
+# dec: 10 -> oct: 12
+# dec: 11 -> oct: 13
+# dec: 12 -> oct: 14
+# dec: 13 -> oct: 15
+# dec: 14 -> oct: 16
+# dec: 15 -> oct: 17
+# dec: 16 -> oct: 20
+# dec: 17 -> oct: 21
+# dec: 18 -> oct: 22
+# dec: 19 -> oct: 23
+# dec: 20 -> oct: 24
+# dec: 21 -> oct: 25
+# dec: 22 -> oct: 26
+# dec: 23 -> oct: 27
+# dec: 24 -> oct: 30
+# dec: 25 -> oct: 31
+# dec: 26 -> oct: 32
+# dec: 27 -> oct: 33
+# dec: 28 -> oct: 34
+# dec: 29 -> oct: 35
+# dec: 30 -> oct: 36
+# dec: 31 -> oct: 37
+# dec: 32 -> oct: 40
+# dec: 33 -> oct: 41
+# dec: 34 -> oct: 42
+# dec: 35 -> oct: 43
+# dec: 36 -> oct: 44
+# dec: 37 -> oct: 45
+# dec: 38 -> oct: 46
+# dec: 39 -> oct: 47
+# dec: 40 -> oct: 50
+# dec: 41 -> oct: 51
+# dec: 42 -> oct: 52
+# dec: 43 -> oct: 53
+# dec: 44 -> oct: 54
+# dec: 45 -> oct: 55
+# dec: 46 -> oct: 56
+# dec: 47 -> oct: 57
+# dec: 48 -> oct: 60
+# dec: 49 -> oct: 61
+# dec: 50 -> oct: 62
diff --git a/challenge-042/ndelucca/perl5/ch-2.pl b/challenge-042/ndelucca/perl5/ch-2.pl
new file mode 100644
index 0000000000..630f22bc28
--- /dev/null
+++ b/challenge-042/ndelucca/perl5/ch-2.pl
@@ -0,0 +1,78 @@
+#!/usr/bin/perl
+
+# TASK #2
+# Balanced Brackets
+
+# Write a script to generate a string with random number of ( and ) brackets. Then make the script validate the string if it has balanced brackets.
+
+# For example:
+# () - OK
+# (()) - OK
+# )( - NOT OK
+# ())() - NOT OK
+
+use strict;
+use warnings;
+
+# We get random length for the string, but we leave it to the user to explore a fixed length
+my $range = shift @ARGV || rand(24);
+
+# String Length
+my $len = rand($range);
+
+# String Generator
+my $lisp = '';
+$lisp .= rand() < 0.5 ? '(' : ')' for 0 .. $len;
+
+print "Generated: $lisp\n";
+
+my $paired_matches = $lisp =~ s/\(\)//g;
+$paired_matches = $lisp =~ s/\(\)//g while $paired_matches;
+
+print "Un-paired brackets: $lisp\n";
+print length ($lisp) > 0 ? "It's NOT balanced\n" : "It's balanced!\n";
+
+# Turns out it's very difficult to get balanced strings
+# I used 2 and 4 for demonstration
+
+# $ perl ch-2.pl 2
+# Generated: ()
+# Un-paired brackets:
+# It's balanced!
+
+# $ perl ch-2.pl 2
+# Generated: )(
+# Un-paired brackets: )(
+# It's NOT balanced
+
+# $ perl ch-2.pl 4
+# Generated: ()()
+# Un-paired brackets:
+# It's balanced!
+
+# $ perl ch-2.pl 4
+# Generated: (((
+# Un-paired brackets: (((
+# It's NOT balanced
+
+# $ perl ch-2.pl 4
+# Generated: (()
+# Un-paired brackets: (
+# It's NOT balanced
+
+# $ perl ch-2.pl 4
+# Generated: ))((
+# Un-paired brackets: ))((
+# It's NOT balanced
+
+# $ perl ch-2.pl 4
+# Generated: ))()
+# Un-paired brackets: ))
+# It's NOT balanced
+
+# $ perl ch-2.pl 4
+# Generated: (())
+# Un-paired brackets:
+# It's balanced!
+
+