дано масив числами по ньому подувати масив де і-тому елементу буде від

 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# 1) дано масив з числами, по ньому подувати масив де і-тому елементу буде відовідати мінімум i-того та (i+1)-шого елементів
# * вирішити задачу без того щоб витягувати елементи зі списку за індексом
[1, 3, 2, 7, 8, 10, 2, 3, 5] -> [1, 2, 2, 7, 8, 2, 2, 3]
[12, 10, 0, 7, 3, 44, 2, 17, 1, 5] -> [10, 0, 0, 3, 3, 2, 2, 1, 1]
a = [12, 10, 0, 7, 3, 44, 2, 17, 1, 5]
list_a = []
x = None
for i in a:
if x != None:
list_a.append(i if i <= x else x)
x = i
print(list_a)
# 2) дано рядок з цифрами, буквами, спецсимволами - по рядку сформувати список слів що є в ньомо (словом вважає послідовність ЛИШЕ букв)
'dsf45hiu2nfiuerhf34ref894fhqich82349f298ch29f8qh5hf8985eqh98fh' -> ['dsf', 'hiu', 'nfiuerhf', 'ref', 'fhqich', 'f', 'ch', 'f', 'qh', 'hf', 'eqh', 'fh']
'aw@#@sdfsf23123a21b 34 sdf sdfsd sdf sdf sdf 234234 dsdfsdf' -> ['aw', 'sdfsf', 'a', 'b', 'sdf', 'sdfsd', 'sdf', 'sdf', 'sdf', 'dsdfsdf']
b = 'dsf45hiu2nfiuerhf34ref894fhqich82349f298ch29f8qh5hf8985eqh98fh'
list_b = []
word = ''
for i in b:
if i.isalpha():
word = word + i
elif word != '':
list_b.append(word)
word = ''
if word != '': # не придумав кращого варіанту для додавання останнього слова(
list_b.append(word)
print(list_b)
# 3) правильна дужкова структура, це структура в якій кожній відкриваючій дужці відповідає рівно одна закриваюча
#(формальне означення, '' - правильна структура, якщо А - правильна то і '(A)' теж правильна, якщо A i B правильні структури, то і 'AB' теж правильні)
# Завдання дан рядок, в якому лише '(' та ')' - завдання сказати чи це правильна структура
'()' -> True
'()()' -> True
'()()(())(((()())))' - > True
'((((' -> False
'))(())((' -> False
c = '()()(())(((()())))'
counter = 0
for i in c:
if i == '(':
counter += 1
elif i == ')':
counter -= 1
if counter < 0:
break
print(True if counter == 0 else False)
# 4) Дано список з парної кількості елментів. В кожній парі, перший елемент це значення, а другий кількість раз це значення зустрічається в розшифрованому масиві
# Розшифрувати масив даний масив
[1, 3, 2, 2, 4, 1] -> [1, 1, 1, 2, 2, 4]
[12, 3, 5, 7, 12, 0, 3, 2] -> [12, 12, 12, 5, 5, 5, 5, 5, 5, 5, 3, 3]
d = [12, 3, 5, 7, 12, 0, 3, 2]
list_d = []
while d != []:
for i in range(d[1]):
list_d.append(d[0])
d = d[2:]
print(list_d)
# 5) - Звортня до задачі #4 - по задоному списку, побудувати шифрування
e = [12, 12, 12, 5, 5, 5, 5, 5, 5, 5, 3, 3]
list_e = []
dict_e = {}
for i in e:
if i not in dict_e:
dict_e[i] = 1
else:
dict_e[i] += 1
for j, k in dict_e.items(): # але я не впевнений, чи треба тут зберігати порядок елементів...
list_e.append(j)
list_e.append(k)
print(list_e)