blob: ef18c534ac58ce527ab992371f759f47d91772ab (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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() == []
|