Ctrl K

Калькулятор на четыре действия

Средняя
Дана строка expr — арифметическое выражение из неотрицательных целых чисел и знаков +, -, *, /. Между числами и знаками может стоять сколько угодно пробелов; скобок нет. Вычислите значение выражения и верните его. Правила обычные: умножение и деление выполняются раньше сложения и вычитания, операции одного приоритета — слева направо. Деление целочисленное, дробная часть отбрасывается (округление к нулю). Встроенные средства, которые вычисляют строку как выражение (например, eval), использовать нельзя.
Пример 1
expr="12 - 2*5 + 9/4" → 4

Сначала умножение и деление: 2*5 = 10, 9/4 = 2 (дробная часть отбрасывается). Затем 12 - 10 + 2 = 4.

Пример 2
expr=" 7 " → 7

Одно число без операций — это и есть ответ.

Пример 3
expr="1 - 30 / 7 * 2" → -7

Слева направо внутри слагаемого: 30/7 = 4, 4*2 = 8, и 1 - 8 = -7.

Ограничения
  • 1 ≤ len(expr) ≤ 3·10⁵
  • expr состоит из цифр, пробелов и знаков + - * / и является корректным выражением: начинается и заканчивается числом, числа и знаки чередуются
  • Каждое число — от 0 до 2³¹ − 1, деления на ноль нет
  • Все промежуточные результаты и ответ лежат в диапазоне [−2³¹, 2³¹ − 1]
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКалькулятор со скобками: плюс и минус СложнаяУпрощение многочлена с буквами СложнаяКалькулятор со скобками и четырьмя действиями СложнаяПереключить выход схемы СложнаяПроверка контрольной по арифметике Сложная
загружаем Python…
Вход
expr="12 - 2*5 + 9/4"
Ожидается
4

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