aboutsummaryrefslogtreecommitdiff
path: root/challenge-095
diff options
context:
space:
mode:
authorSimon Green <mail@simon.green>2021-01-17 15:44:50 +1000
committerSimon Green <mail@simon.green>2021-01-17 15:44:50 +1000
commitc6942d8256fc10f59dc6baba26cb1234a0caebd5 (patch)
tree7bcb45fe56e252e578e013d1a5feef572987e345 /challenge-095
parent2d7e3e75ef6e478d5cde93633b88decfae516d5e (diff)
downloadperlweeklychallenge-club-c6942d8256fc10f59dc6baba26cb1234a0caebd5.tar.gz
perlweeklychallenge-club-c6942d8256fc10f59dc6baba26cb1234a0caebd5.tar.bz2
perlweeklychallenge-club-c6942d8256fc10f59dc6baba26cb1234a0caebd5.zip
sgreen solution to challenge 095
Diffstat (limited to 'challenge-095')
-rw-r--r--challenge-095/sgreen/blog.txt1
-rwxr-xr-xchallenge-095/sgreen/perl/ch-1.pl19
-rwxr-xr-xchallenge-095/sgreen/perl/ch-2.pl46
3 files changed, 66 insertions, 0 deletions
diff --git a/challenge-095/sgreen/blog.txt b/challenge-095/sgreen/blog.txt
new file mode 100644
index 0000000000..f24b63f5ac
--- /dev/null
+++ b/challenge-095/sgreen/blog.txt
@@ -0,0 +1 @@
+https://dev.to/simongreennet/weekly-challenge-095-2jkl
diff --git a/challenge-095/sgreen/perl/ch-1.pl b/challenge-095/sgreen/perl/ch-1.pl
new file mode 100755
index 0000000000..463ec06e3f
--- /dev/null
+++ b/challenge-095/sgreen/perl/ch-1.pl
@@ -0,0 +1,19 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+
+use feature 'say';
+
+sub main {
+ my $N = shift;
+
+ # Sanity check
+ die "You must enter a number\n" if not defined $N;
+ die "The value '$N' does not look like a number\n" unless $N =~ /^-?\d+(?:\.\d+)?$/;
+
+ # Say 1 if the reversed string equals the number, otherwise say 0
+ say $N eq reverse($N) ? 1 : 0;
+}
+
+main(@ARGV);
diff --git a/challenge-095/sgreen/perl/ch-2.pl b/challenge-095/sgreen/perl/ch-2.pl
new file mode 100755
index 0000000000..2615502ada
--- /dev/null
+++ b/challenge-095/sgreen/perl/ch-2.pl
@@ -0,0 +1,46 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use feature 'say';
+
+package Stack;
+use List::Util;
+
+sub new {
+ my $class = shift;
+ my $self = bless {}, $class;
+ $self->{stack} = [];
+ return $self;
+}
+
+sub push {
+ my ( $self, $value ) = @_;
+ push @{ $self->{stack} }, $value;
+}
+
+sub pop {
+ my $self = shift;
+ pop @{ $self->{stack} };
+}
+
+sub top {
+ my $self = shift;
+ return $self->{stack}[-1];
+}
+
+sub min {
+ my $self = shift;
+ return List::Util::min @{ $self->{stack} };
+}
+
+package main;
+
+my $stack = Stack->new;
+$stack->push(2);
+$stack->push(-1);
+$stack->push(0);
+$stack->pop;
+say $stack->top;
+$stack->push(0);
+say $stack->min;