Войти Создать аккаунт

Архиватор · Шаг 2 из 4

Коды из дерева

Дерево построено — теперь из него читаются коды. Путь от корня до листа и есть код символа: шаг налево — 0, шаг направо — 1. Ни один код не начало другого, поэтому их можно писать подряд без разделителей и всё равно читать однозначно.

Что сделать

Прочитайте из дерева код каждого символа: путь от корня, налево — «0», направо — «1».

Что приходит

  • derevo — дерево из шага 1: лист — символ, узел — пара (левое, правое); или None

Что вернуть

Словарь «символ → код строкой из 0 и 1», ключи — в порядке листьев слева направо; дерево из одного листа — код "0"; None — {}.

Допишите функцию kody в редакторе справа. Результат верните через return — то, что напечатано, на проверку не влияет.

В проекте

Архиватор зовёт kody один раз на файл и по этому словарю превращает каждый байт в его код — шаг 3.

Вызов
kody(((99, 98), 97))
Вернуть
{99: '00', 98: '01', 97: '1'}
Ctrl+Enter — проверить

Обсуждение

Вопросов пока нет.

Войдите, чтобы спросить.