Search⌘ K

Feature #10: Decode a Message

Explore how to reverse a message digest function by applying arithmetic operations with given integers. Understand how to implement a depth-first search to test all combinations of operations and values. This lesson helps you develop skills to solve interview questions involving recursion, arithmetic operations, and backtracking in Elixir.

Description

In this feature, we will reverse a message digest function. The message digest function applies a subset of the operators +, -, *, and / along with some parenthesization to individual digits in the message and converts the subset into the message digest. The message will consist of four integers, each in the range [1, 9]. The message digest is also an integer.

Note: It is also possible that no combination of these operations may lead to a message digest.

We will be given the array of integers and the message digest. We will be restricted by the following rules:

  • The division operator / represents real division, not integer division.

  • We cannot use - as a unary operator. Every operation is carried out between two numbers.

  • We cannot concatenate numbers together. For example, if message = ...