Тех собес на middle-senior Python Developer в ****

Доступно с премиум-подпиской

Оформите премиум-подписку, чтобы получить доступ к:

  • Фильтрации по компаниям
  • Названиям компаний в интервью
  • Видеозаписям собеседований в категории Python Developer

Посмотреть видео в категории

(2025-02-01)

Задача 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:
   ...