aboutsummaryrefslogtreecommitdiff
path: root/challenge-078/lubos-kolouch/python/ch-1.py
diff options
context:
space:
mode:
author冯昶 <seaker@qq.com>2020-09-21 14:20:42 +0800
committer冯昶 <seaker@qq.com>2020-09-21 14:20:42 +0800
commitbca0c362c212fc0dadc5ed7d9a5e4fa1aece4bfb (patch)
tree877181cfde26b706346d3468269e4674d75da772 /challenge-078/lubos-kolouch/python/ch-1.py
parentec09b571a6f2186fec8870a071a8d5d38596c850 (diff)
parent5ac16ac7e9826137e0da5597e954f4992c66205d (diff)
downloadperlweeklychallenge-club-bca0c362c212fc0dadc5ed7d9a5e4fa1aece4bfb.tar.gz
perlweeklychallenge-club-bca0c362c212fc0dadc5ed7d9a5e4fa1aece4bfb.tar.bz2
perlweeklychallenge-club-bca0c362c212fc0dadc5ed7d9a5e4fa1aece4bfb.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-078/lubos-kolouch/python/ch-1.py')
-rw-r--r--challenge-078/lubos-kolouch/python/ch-1.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/challenge-078/lubos-kolouch/python/ch-1.py b/challenge-078/lubos-kolouch/python/ch-1.py
new file mode 100644
index 0000000000..ef18c534ac
--- /dev/null
+++ b/challenge-078/lubos-kolouch/python/ch-1.py
@@ -0,0 +1,43 @@
+#!/bin/env python
+""" https://perlweeklychallenge.org/blog/perl-weekly-challenge-078/
+ Task 1
+ Leader Element
+ 19.9.2020 Lubos Kolouch """
+
+
+class LeaderElements:
+ """ Class to find Leader elements from a list """
+
+ def __init__(self, arr: list()):
+ self.arr = arr
+ self.leaders = list()
+
+ def process_list(self):
+ """ Process the list and fill in leaders """
+
+ if not self.arr:
+ return 0
+
+ self.leaders.insert(0, self.arr[-1])
+ for item in reversed(self.arr):
+ if item > self.leaders[0]:
+ self.leaders.insert(0, item)
+
+ return 1
+
+ def return_leaders(self):
+ """ Return the leaders list """
+ return self.leaders
+
+
+tester = LeaderElements([9, 10, 7, 5, 6, 1])
+tester.process_list()
+assert tester.return_leaders() == [10, 7, 6, 1]
+
+tester = LeaderElements([3, 4, 5])
+tester.process_list()
+assert tester.return_leaders() == [5]
+
+tester = LeaderElements([])
+tester.process_list()
+assert tester.return_leaders() == []