Feature #10: Decode a Message
Explore how to decode a message digest by applying arithmetic operations on four integers within set constraints. Learn to implement a depth-first search algorithm and track operations to find if a combination matches the target digest while adhering to division and operation rules. Understand complexity implications in this constrained search problem.
We'll cover the following...
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. ...