-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcount_fives_after_ones.py
More file actions
47 lines (30 loc) · 1.04 KB
/
Copy pathcount_fives_after_ones.py
File metadata and controls
47 lines (30 loc) · 1.04 KB
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
44
45
46
47
from functools import reduce
import numpy as np
from more_itertools import pairwise
t_list: list[int] = [1, 2, 3, 4, 5, 1, 4, 1, 5, 4, 1, 5]
def func1(lst: list[int]) -> int:
return sum(1 for inx in range(1, len(lst))
if (lst[inx - 1], lst[inx]) == (1, 5))
def func2(lst: list[int]) -> int:
return sum(1 for item in zip(lst, lst[1:]) if item == (1, 5))
def func4(lst: list[int]) -> int:
arr = np.array(list(zip(lst, lst[1:])))
return np.where((arr[:, 0] == 1) & (arr[:, 1] == 5), 1, 0).sum()
def func5(lst: list[int]) -> int:
return sum(map((1, 5).__eq__, zip(lst, lst[1:])))
def func6(lst: list[int]) -> int:
func6.contr = 0
def inner(x, y):
func6.contr += (x, y) == (1, 5)
return y
reduce(inner, lst)
return func6.contr
def func7(lst: list[int]) -> int:
return sum(1 for item in pairwise(lst) if item == (1, 5))
# print(func1(t_list))
# print(func2(t_list))
# print(func3(t_list))
# print(func4(t_list))
# print(func5(t_list))
# print(func6(t_list))
print(func7(t_list))