aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-095/lubos-kolouch/perl/ch-1.pl35
-rw-r--r--challenge-095/lubos-kolouch/perl/ch-2.pl77
-rw-r--r--challenge-095/lubos-kolouch/python/ch-1.py30
-rw-r--r--challenge-095/lubos-kolouch/python/ch-2.py70
4 files changed, 212 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..7f5894e34c
--- /dev/null
+++ b/challenge-095/lubos-kolouch/perl/ch-1.pl
@@ -0,0 +1,35 @@
+#!/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(90), 0, 'Test 90');
+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();
diff --git a/challenge-095/lubos-kolouch/python/ch-1.py b/challenge-095/lubos-kolouch/python/ch-1.py
new file mode 100644
index 0000000000..f6795dc1b2
--- /dev/null
+++ b/challenge-095/lubos-kolouch/python/ch-1.py
@@ -0,0 +1,30 @@
+#!env python
+"""
+# ===============================================================================
+#
+# FILE: ch_2.py
+#
+# USAGE: ./ch_2.py
+#
+# DESCRIPTION: Perl Weekly Challenge #095
+# https://perlweeklychallenge.org/blog/perl-weekly-challenge-095/
+# Palindrome Number
+#
+# AUTHOR: Lubos Kolouch
+# CREATED: 01/13/2021 02:39:16 PM
+#===============================================================================
+"""
+
+
+def is_palindrome(what: int):
+ """ test the palindrome """
+
+ # the 0+ is to avoid situations like 0000123
+ return str(what+0) == str(what+0)[::-1]
+
+
+def test_numbers():
+ """ Tests """
+ assert is_palindrome(1221) == 1
+ assert is_palindrome(-101) == 0
+ assert is_palindrome(90) == 0
diff --git a/challenge-095/lubos-kolouch/python/ch-2.py b/challenge-095/lubos-kolouch/python/ch-2.py
new file mode 100644
index 0000000000..8be6bda569
--- /dev/null
+++ b/challenge-095/lubos-kolouch/python/ch-2.py
@@ -0,0 +1,70 @@
+#!env python
+"""
+# ===============================================================================
+#
+# FILE: ch_2.py
+#
+# USAGE: ./ch_2.py
+#
+# 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
+#===============================================================================
+"""
+
+
+class Stack:
+ """ Class to the stack """
+
+ def __init__(self):
+ self.stack = []
+
+ def push(self, value: int):
+ """ Demostrate push """
+ self.stack.insert(0, value)
+
+ @property
+ def pop(self):
+ """ Demonstrate pop """
+
+ try:
+ return self.stack.pop(0)
+ except IndexError:
+ return None
+
+ @property
+ def top(self):
+ """ Demonstrate top """
+
+ return self.stack[0]
+
+ @property
+ def stack_min(self):
+ """ Demostrate min """
+
+ return min(self.stack)
+
+
+def test_cases():
+ """ Test cases """
+
+ stack = Stack()
+ assert stack.pop == None
+
+ stack.push(2)
+ assert stack.top == 2
+
+ stack.push(-1)
+ assert stack.top == -1
+
+ stack.push(0)
+ assert stack.top == 0
+
+ assert stack.pop == 0
+ assert stack.top == -1
+
+ stack.push(0)
+ assert stack.stack_min == -1