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

  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
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# 1) дано масив з числами, по ньому подувати масив де і-тому елементу буде відовідати мінімум i-того та (i+1)-шого елементів
arr1 = [1, 3, 2, 7, 8, 10, 2, 3, 5]
arr2 = [12, 10, 0, 7, 3, 44, 2, 17, 1, 5]
def min_pairs(arr):
prev = None
res = []
for curr in arr:
if prev != None:
res.append(min(prev, curr))
prev = curr
return res
print(min_pairs(arr1))
print(min_pairs(arr2))
# 2) дано рядок з цифрами, буквами, спецсимволами - по рядку сформувати список слів що є в ньомо (словом вважає послідовність ЛИШЕ букв)
string1 = 'dsf45hiu2nfiuerhf34ref894fhqich82349f298ch29f8qh5hf8985eqh98fh'
string2 = 'aw@#@sdfsf23123a21b 34 sdf sdfsd sdf sdf sdf 234234 dsdfsdf'
def word_lists(string):
res = []
word = ''
for char in string:
if char.isalpha():
word += char
elif word != '':
res.append(word)
word = ''
if word != '':
res.append(word)
return res
print(word_lists(string1))
print(word_lists(string2))
# 3) правильна дужкова структура, це структура в якій кожній відкриваючій дужці відповідає рівно одна закриваюча
#(формальне означення, '' - правильна структура, якщо А - правильна то і '(A)' теж правильна,
#якщо A i B правильні структури, то і 'AB' теж правильні)
# Завдання дан рядок, в якому лише '(' та ')' - завдання сказати чи це правильна структура
par1 = '()' #-> True
par2 = '()()' #-> True
par3 = '()()(())(((()())))' #-> True
par4 = '((((' #-> False
par5 = '))(())((' #-> False
def correct_parentheses(par):
par_sum = 0
for char in par:
if char == '(':
par_sum += 1
elif char == ')':
par_sum -= 1
if par_sum < 0:
return False
if par_sum > 0:
return False
return True
print(correct_parentheses(par1))
print(correct_parentheses(par2))
print(correct_parentheses(par3))
print(correct_parentheses(par4))
print(correct_parentheses(par5))
# 4) Дано список з парної кількості елментів. В кожній парі, перший елемент це значення,
# а другий кількість раз це значення зустрічається в розшифрованому масиві
# Розшифрувати масив даний масив
arr3 = [1, 3, 2, 2, 4, 1]
arr4 = [12, 3, 5, 7, 12, 0, 3, 2]
def code_array(arr):
res = []
for ind, el in enumerate(arr):
if ind%2==1:
quantity = el
res+=[number]*el
else:
number = el
return res
print(code_array(arr3))
print(code_array(arr4))
# 5) - Звортня до задачі #4 - по задоному списку, побудувати шифрування
code1 = [1, 1, 1, 2, 2, 4]
code2 = [12, 12, 12, 5, 5, 5, 5, 5, 5, 5, 3, 3]
def decode_array(arr):
number, quantity = None, None
res = []
for el in arr:
if number != el:
if quantity != None:
res.append(number)
res.append(quantity)
number = el
quantity = 1
else:
quantity += 1
res.append(number)
res.append(quantity)
return res
print(decode_array(code1))
print(decode_array(code2))