Задача 1
# Дана строка, состоящая из букв 'X', 'Y' и 'O'.
# Необходимо найти кратчайшее расстояние между буквами 'X' и 'Y',
# либо вывести 0, если 'X' либо 'Y' отсутствуют.
"YY" -> 0
"XX" -> 0
"XY" -> 1
"YOX" -> 2
"OOOXOOYOXOXO" -> 2
"OOOXXOY"-> 2
def distance(input: str) -> int:
index_x = None
index_y = None
way = len(input) + 1
for index, value in enumerate(input):
if value == "X":
index_x = index
elif value == "Y":
index_y = index
if indexx != None and indexy != None:
if way > abs(indexx - indexy):
way = abs(indexx - indexy)
if indexx != None and indexy != None:
result = way
else:
result = 0
return result
Задача 2
Дано бинарное дерево, значения в нем - числа.
Нужно написать функцию, которая возвращает
сумму всех узлов дерева, у которых нет потомков.
Например, для дерева
5
/
4 2
/
1 6 3
/
7
Результатом будет число 14 (1 + 6 + 7).
"""
class Node(object):
def init(self, value, left=None, right=None):
self.value = value
self.left = left
self.right = right
def tree_sum(root: Node) -> int:
...