MathEvaluator

 avatar
unknown
php
6 months ago
820 B
6
Indexable
<?php

class MathEvaluator {
    /**
     * @param string $expression
     * @return int
     */
    public function evaluateExpression(string $expression): int {
        preg_match_all('/(\d+|[+-])/', $expression, $tokens);

        $tokens = $tokens[0];

        $result = (int) $tokens[0];

        for ($i = 1; $i < count($tokens); $i += 2) {
            $operator = $tokens[$i];
            $number = (int) $tokens[$i + 1];

            if ($operator === '+') {
                $result += $number;
            } elseif ($operator === '-') {
                $result -= $number;
            }
        }

        return $result;
    }
}

// Приклад використання:
$evaluator = new MathEvaluator();
$expression = "10 + 5 - 3 + 7";
echo $evaluator->evaluateExpression($expression);  // Виведе 19
Editor is loading...
Leave a Comment