diff options
| author | Simon Green <mail@simon.green> | 2021-01-17 15:44:50 +1000 |
|---|---|---|
| committer | Simon Green <mail@simon.green> | 2021-01-17 15:44:50 +1000 |
| commit | c6942d8256fc10f59dc6baba26cb1234a0caebd5 (patch) | |
| tree | 7bcb45fe56e252e578e013d1a5feef572987e345 /challenge-095 | |
| parent | 2d7e3e75ef6e478d5cde93633b88decfae516d5e (diff) | |
| download | perlweeklychallenge-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.txt | 1 | ||||
| -rwxr-xr-x | challenge-095/sgreen/perl/ch-1.pl | 19 | ||||
| -rwxr-xr-x | challenge-095/sgreen/perl/ch-2.pl | 46 |
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; |
