Испытания

Обратная польская запись

PHP: Массивы

В данном упражнении необходимо реализовать стековую машину, то есть алгоритм, проводящий вычисления по обратной польской записи.

Обратная польская нотация или постфиксная нотация — форма записи математических и логических выражений, в которой операнды расположены перед знаками операций. Выражение читается слева направо. Когда в выражении встречается знак операции, выполняется соответствующая операция над двумя ближайшими операндами, находящимися слева от знака операции. Результат операции заменяет в выражении последовательность её операндов и знак, после чего выражение вычисляется дальше по тому же правилу. Таким образом, результатом вычисления всего выражения становится результат последней вычисленной операции.

Например, выражение (1 + 2) * 4 + 3 в постфиксной нотации будет выглядеть так: 1 2 + 4 * 3 +, а результат вычисления: 15. Другой пример - выражение: 7 - 2 * 3, в постфиксной нотации: 7 2 3 * -, результат: 1.

src\Arrays.php

Реализуйте функцию calcInPolishNotation, которая принимает массив, каждый элемент которого содержит число или знак операции (+, -, *, /). Функция должна вернуть результат вычисления по обратной польской записи.

<?php

calcInPolishNotation([1, 2, '+', 4, '*', 3, '+']);
// → 15

calcInPolishNotation([7, 2, 3, '*', '-']);
// → 1
Успешных завершений: 88%

Последние код-ревью

Автор Дата обновления Версий
vitaminkin 17 нояб., 03:07 1
downtempa 11 нояб., 15:13 1
undefined 10 нояб., 22:07 1
incraft 31 окт., 18:00 1
user-cfca751b3784b7c6 18 окт., 11:50 1