Ctrl K

Запись дерева с решётками

Средняя
Двоичное дерево записывают строкой так: обходят его в прямом порядке (узел, левое поддерево, правое поддерево), значение каждого узла пишут как число, а каждое пустое поддерево — символом #. Записи разделяют запятыми. Например, дерево с корнем 1, у которого левый ребёнок 3 без детей, а правого нет, записывается как "1,3,#,#,#". Дана строка record. Верните True, если она может быть такой записью какого-нибудь двоичного дерева, и False иначе. Гарантируется, что формат строки корректен: между запятыми всегда стоит либо целое число, либо #, а двух запятых подряд не бывает. Восстанавливать само дерево не нужно.
Пример 1
record="4,7,#,#,2,#,#" → True

Корень 4 с детьми 7 и 2, у обоих детей пустые поддеревья.

Пример 2
record="4,#" → False

У узла 4 записано только левое поддерево, правого не хватает.

Пример 3
record="#,5,#,#" → False

Первый # — это уже всё дерево целиком (пустое), лишние значения после него недопустимы.

Ограничения
  • 1 ≤ len(record) ≤ 10⁴
  • record состоит из целых чисел от 0 до 100 и символов #, разделённых запятыми
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиДерево из скобочной записи СредняяДерево в правую цепочку СредняяПрямой обход дерева поиска СредняяДерево в скобочной записи СредняяДерево из вершин-максимумов Средняя
загружаем Python…
Вход
record="4,7,#,#,2,#,#"
Ожидается
True

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 146 тестов на сервере, включая скрытые.