aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubos Kolouch <lubos@kolouch.net>2021-01-16 10:38:40 +0100
committerLubos Kolouch <lubos@kolouch.net>2021-01-16 10:38:40 +0100
commita4b5b10a163d4d2cc6c709f685bb302d202a9ad9 (patch)
tree5952fd6cab007dde264b91d278f5b6a2c3a94343
parentcd6c653837dc0099b652ddba92cacb8e89b979d6 (diff)
downloadperlweeklychallenge-club-a4b5b10a163d4d2cc6c709f685bb302d202a9ad9.tar.gz
perlweeklychallenge-club-a4b5b10a163d4d2cc6c709f685bb302d202a9ad9.tar.bz2
perlweeklychallenge-club-a4b5b10a163d4d2cc6c709f685bb302d202a9ad9.zip
Solutions Challenge 095 Perl LK
-rw-r--r--challenge-095/lubos-kolouch/perl/ch-1.pl34
-rw-r--r--challenge-095/lubos-kolouch/perl/ch-2.pl77
2 files changed, 111 insertions, 0 deletions
diff --git a/challenge-095/lubos-kolouch/perl/ch-1.pl b/challenge-095/lubos-kolouch/perl/ch-1.pl
new file mode 100644
index 0000000000..f1f24ec458
--- /dev/null
+++ b/challenge-095/lubos-kolouch/perl/ch-1.pl
@@ -0,0 +1,34 @@
+#!/usr/bin/perl
+#===============================================================================
+#
+# FILE: ch_1.pl
+#
+# USAGE: ./ch_1.pl
+#
+# DESCRIPTION: Perl Weekly Challenge 095
+# Task1
+# Palindrome Number
+#
+# AUTHOR: Lubos Kolouch
+# CREATED: 01/16/2021 10:12:20 AM
+#===============================================================================
+
+use strict;
+use warnings;
+use 5.010;
+
+sub is_palindrome {
+ my $what = shift;
+
+ # int to cover cases like 00010
+ return 1 if int($what) eq reverse int($what);
+ return 0;
+}
+
+use Test::More;
+
+is(is_palindrome(1221), 1, 'Test 1221');
+is(is_palindrome(-101), 0, 'Test -101');
+is(is_palindrome('00001221'), 1, 'Test 00001221');
+
+done_testing;
diff --git a/challenge-095/lubos-kolouch/perl/ch-2.pl b/challenge-095/lubos-kolouch/perl/ch-2.pl
new file mode 100644
index 0000000000..3913d94354
--- /dev/null
+++ b/challenge-095/lubos-kolouch/perl/ch-2.pl
@@ -0,0 +1,77 @@
+#!/usr/bin/perl
+#===============================================================================
+#
+# FILE: ch_2.pl
+#
+# USAGE: ./ch_2.pl
+#
+# DESCRIPTION: Perl Weekly Challenge #095
+# https://perlweeklychallenge.org/blog/perl-weekly-challenge-095/
+# Demo Stack
+#
+# AUTHOR: Lubos Kolouch
+# CREATED: 01/13/2021 02:39:16 PM
+#===============================================================================
+
+use strict;
+use warnings;
+
+{
+package Stack;
+use Moose;
+use List::Util qw/min/;
+use Data::Dumper;
+
+ has 'values' => (is => 'rw', isa=>'ArrayRef', default=>sub{ [] });
+
+ sub push {
+ my $self = shift;
+ my $what = shift;
+
+ unshift @{$self->values}, $what;
+ }
+
+ sub pop {
+ my $self = shift;
+ my $what = shift;
+
+ return shift @{$self->values} if @{$self->values};
+ return;
+ }
+
+
+ sub top {
+ my $self = shift;
+
+ return ${$self->values}[0] if @{$self->values};
+ return;
+ }
+
+ sub stack_min {
+ my $self = shift;
+
+ return min(@{$self->values});
+ }
+}
+
+no Moose;
+use Test::More;
+
+my $stack = Stack->new;
+$stack->push(2);
+is($stack->top, 2, '2 on top');
+
+$stack->push(-1);
+is($stack->top, -1, '-1 on top');
+
+$stack->push(0);
+is($stack->top, 0, '0 on top');
+
+is($stack->pop, 0, 'Remove 0');
+is($stack->top, -1, '-1 on top');
+
+$stack->push(0);
+is($stack->top, 0, '0 on top');
+
+is($stack->stack_min, -1, '-1 is min');
+done_testing();