Ctrl K

Все результаты расстановки скобок

Средняя
Дано арифметическое выражение expr из неотрицательных целых чисел и операций +, -, *, без скобок и пробелов. Скобки можно расставить по-разному: каждая полная расстановка однозначно задаёт порядок выполнения операций. Вычислите выражение для **каждой** различной полной расстановки скобок и верните все полученные значения. Если разные расстановки дают одно и то же число, оно встречается в ответе столько раз, сколько расстановок его дают. Порядок значений в ответе не важен.
Пример 1
expr="6-2+1" → [3, 5]

(6-2)+1 = 5 и 6-(2+1) = 3.

Пример 2
expr="3*4-2*2" → [0, 12, 8, 12, 20]

Пять расстановок скобок: 3*(4-(2*2)) = 0, 3*((4-2)*2) = 12, (3*4)-(2*2) = 8, (3*(4-2))*2 = 12, ((3*4)-2)*2 = 20. Одинаковые значения от разных расстановок повторяются.

Пример 3
expr="42" → [42]
Ограничения
  • 1 ≤ len(expr) ≤ 20
  • expr состоит из цифр и знаков +, -, *
  • каждое число в выражении от 0 до 99 и записано без знака
  • выражение начинается и заканчивается числом, два знака подряд не стоят
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСумма двух предыдущих ЛёгкаяПроверка контрольной по арифметике СложнаяРазбиение на слова из словаря СредняяГонка из общей кучки чисел СредняяДуэль за крайние карты Средняя
загружаем Python…
Вход
expr="6-2+1"
Ожидается
[3, 5]

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