Эйч
Эйч
  • Все менторы
Задачи/PHP-разработчик/Функция конвертации AST арифметического выражения в строку кода

Функция конвертации AST арифметического выражения в строку кода

Условие задачи

Дано: арифметическое выражение заданное в форме AST (Abstract Syntax Tree) в префиксной нотации.

AST может быть вещественным числом либо массивом, в котором первый элемент это всегда строка обозначающая арифметическую операцию, а все последующие элементы - аргументы этой операции (тоже в формате AST): AST = float | ['operation', arg1, arg2, ..., argN], где arg1, arg2, ..., argN — AST

Поддерживаются следующие арифметические операции: унарный (-) унарный (+) сложение (+) вычитание (-) умножение (*) деление (/).

Допустимо считать, что входные данные всегда корректны.

Требуется написать функцию "astToCode", которая принимает на вход AST и конвертирует его в строку кода.

phpfunction astToCode(array|float $ast): string
{

}

function test(array|float $ast, string $expectedCode): void
{
    $actualCode = astToCode($ast);
    echo $actualCode === $expectedCode ? 'OK' : "FAIL ";
    echo ": $expectedCode" . PHP_EOL;
}

test(5, '5');
test(, , 3]]], '-(+3)');
test(, 1]], '+(-1)');
test(, ], '(1 * 2) * (3 - 1)');
test(]], '2 * 5 * 7 / (8 - (5 + 6))');
test(, , ], '1 + 2 - (3 - 4) - (5 + 6)');

Профессия

PHP-разработчик

Сопроводим до оффера

Умножим шансы на каждом этапе поиска и поможем получить выгодный оффер

Узнать больше

Сервис развития карьеры

Контактыteam@h.careers@hcareers
TelegramVKYouTubeLinkedIn
Профессии
Компания
С чем помогаемОтзывыВопросы и ответыСертификатыВебинарыСтать ментором

Платформа принадлежит ООО "Эйч Карьера"
ИНН 9710095807 ОГРН 1227700077340
Адрес: 127006, город Москва, Старопименовский пер, д. 18 стр. 2, помещ./ком./этаж I/19/2

Copyright © 2020-2025 Сервис развития карьеры Эйч. Все права защищены.

Политика конфиденциальностиПользовательское соглашениеОферта