Алгоритм перестановки операторов и операндов

Я наткнулся на этот вопрос на сайте интервью - Нам даны 4 числа, скажем, n1, n2, n3, n4. Мы можем разместить их в любом порядок, и мы можем использовать математические операторы +, -, *, / между ними чтобы окончательный результат был равен 24. Напишите алгоритм для этого - потребуется 4 числа и вернуть ложь или истину, возможен ли окончательный результат 24 с любой комбинацией. Один и тот же оператор может использоваться несколько раз.

Один из способов сделать это -

  1. Переставить операторы
  2. Переставить операнды
  3. Применить каждую перестановку в 2. к каждой перестановке в 1.

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

12
задан Tushar Gupta 19 October 2010 в 04:05
поделиться