# Find the missing digit x from the given expression

Given an alphanumeric string, consisting of a single alphabet **X**, which represents an expression of the form:

A operator B = Cwhere A, B and C denotes integers and the operator can be either of +, -, * or /

The task is to evaluate the missing digit **X **present in any of the integers A, B and C such that the given expression holds to be valid.

**Examples:**

Input:S = “3x + 12 = 46”Output:4Explanation:

If we subtract 12 from 46, we will get 34.

So, on comparing 3x and 34. the value of x = 4

Input:S = “4 – 2 = x”Output:2Explanation:

After solving the equation, the value of x = 2.

**Approach:** Follow the steps below to solve the problem:

- Split the string to extract the two operands, operator and the resultant.
- Check if X is present in the resultant or not. If so, then compute the value of the resultant by applying operations on the first operand and second operand with the operator.
- Otherwise, if X is not present in the resultant. Then check if X is present in the first operand. If so, then apply the operation on the second operand and resultant with the operator.
- Otherwise, if X is not present in the first operand also. Then check if X is present in the second operand. If so, then apply the operation on the first operand and resultant with the operator.

Below is the implementation of the above approach:

## Python3

`# Python3 program to find missing` `# digit x in expression` `def` `MissingDigit(exp):` ` ` ` ` `# Split the expression to` ` ` `# extract operands, operator` ` ` `# and resultant` ` ` `exp ` `=` `list` `(exp.split())` ` ` `first_operand ` `=` `exp[` `0` `]` ` ` `operator ` `=` `exp[` `1` `]` ` ` `second_operand ` `=` `exp[` `2` `]` ` ` `resultant ` `=` `exp[` `-` `1` `]` ` ` `# If x is present in resultant` ` ` `if` `'x'` `in` `resultant:` ` ` `x ` `=` `resultant` ` ` `first_operand ` `=` `int` `(first_operand)` ` ` `second_operand ` `=` `int` `(second_operand)` ` ` `if` `operator ` `=` `=` `'+'` `:` ` ` `res ` `=` `first_operand ` `+` `second_operand` ` ` `elif` `operator ` `=` `=` `'-'` `:` ` ` `res ` `=` `first_operand ` `-` `second_operand` ` ` `elif` `operator ` `=` `=` `'*'` `:` ` ` `res ` `=` `first_operand ` `*` `second_operand` ` ` `else` `:` ` ` `res ` `=` `first_operand ` `/` `/` `second_operand` ` ` `# If x in present in operands` ` ` `else` `:` ` ` `resultant ` `=` `int` `(resultant)` ` ` `# If x in the first operand` ` ` `if` `'x'` `in` `first_operand:` ` ` `x ` `=` `first_operand` ` ` `second_operand ` `=` `int` `(second_operand)` ` ` `if` `operator ` `=` `=` `'+'` `:` ` ` `res ` `=` `resultant ` `-` `second_operand` ` ` `elif` `operator ` `=` `=` `'-'` `:` ` ` `res ` `=` `resultant ` `+` `second_operand` ` ` `elif` `operator ` `=` `=` `'*'` `:` ` ` `res ` `=` `resultant ` `/` `/` `second_operand` ` ` `else` `:` ` ` `res ` `=` `resultant ` `*` `second_operand` ` ` `# If x is in the second operand` ` ` `else` `:` ` ` `x ` `=` `second_operand` ` ` `first_operand ` `=` `int` `(first_operand)` ` ` `if` `operator ` `=` `=` `'+'` `:` ` ` `res ` `=` `resultant` `-` `first_operand` ` ` `elif` `operator ` `=` `=` `'-'` `:` ` ` `res ` `=` `first_operand ` `-` `resultant` ` ` `elif` `operator ` `=` `=` `'*'` `:` ` ` `res ` `=` `resultant ` `/` `/` `first_operand` ` ` `else` `:` ` ` `res ` `=` `first_operand ` `/` `/` `resultant` ` ` `res ` `=` `str` `(res)` ` ` `k ` `=` `0` ` ` `for` `i ` `in` `x:` ` ` `if` `i ` `=` `=` `'x'` `:` ` ` `result ` `=` `res[k]` ` ` `break` ` ` `else` `:` ` ` `k ` `=` `k ` `+` `1` ` ` `return` `result` `# Driver Code` `if` `__name__ ` `=` `=` `'__main__'` `:` ` ` `# input expression` ` ` `exp ` `=` `"3x + 12 = 46"` ` ` `print` `(MissingDigit(exp))` |

## Javascript

`<script>` `// JavaScript program to find missing` `// digit x in expression` `let res = 0,x;` `let result = ` `""` `;` `function` `MissingDigit(exp){` ` ` ` ` `// Split the expression to` ` ` `// extract operands, operator` ` ` `// and resultant` ` ` `exp = exp.split(` `' '` `)` ` ` `let first_operand = exp[0]` ` ` `let operator = exp[1]` ` ` `let second_operand = exp[2]` ` ` `let resultant = exp[exp.length-1]` ` ` `// If x is present in resultant` ` ` `if` `(resultant.indexOf(` `'x'` `) != -1){` ` ` `x = resultant` ` ` `first_operand = parseInt(first_operand)` ` ` `second_operand = parseInt(second_operand)` ` ` `if` `(operator == ` `'+'` `)` ` ` `res = first_operand + second_operand` ` ` `else` `if` `(operator == ` `'-'` `)` ` ` `res = first_operand - second_operand` ` ` `else` `if` `(operator == ` `'*'` `)` ` ` `res = first_operand * second_operand` ` ` `else` ` ` `res = Math.floor(first_operand / second_operand)` ` ` `}` ` ` `// If x in present in operands` ` ` `else` `{` ` ` `resultant = parseInt(resultant)` ` ` `// If x in the first operand` ` ` `if` `(first_operand.indexOf(` `'x'` `) != -1){` ` ` `x = first_operand` ` ` `second_operand = parseInt(second_operand)` ` ` `if` `(operator == ` `'+'` `)` ` ` `res = resultant - second_operand` ` ` `else` `if` `(operator == ` `'-'` `)` ` ` `res = resultant + second_operand` ` ` `else` `if` `(operator == ` `'*'` `)` ` ` `res = Math.floor(resultant / second_operand)` ` ` `else` ` ` `res = resultant * second_operand` ` ` `}` ` ` `// If x is in the second operand` ` ` `else` `{` ` ` `let x = second_operand` ` ` `first_operand = parseInt(first_operand)` ` ` `if` `(operator == ` `'+'` `)` ` ` `res = resultant-first_operand` ` ` `else` `if` `(operator == ` `'-'` `)` ` ` `res = first_operand - resultant` ` ` `else` `if` `(operator == ` `'*'` `)` ` ` `res = Math.floor(resultant / first_operand)` ` ` `else` ` ` `res = Math.floor(first_operand / resultant)` ` ` `}` ` ` `}` ` ` `res = res.toString()` ` ` `let k = 0` ` ` `for` `(let i of x){` ` ` `if` `(i == ` `'x'` `){` ` ` `result = res[k]` ` ` `break` ` ` `}` ` ` `else` ` ` `k = k + 1` ` ` `}` ` ` `return` `result` `}` `// Driver Code` `// input expression` `let exp = ` `"3x + 12 = 46"` `document.write(MissingDigit(exp))` ` ` `// This code is contributed by shinjanpatra` `</script>` |

**Output:**

4

**Time Complexity:** O(L), where is the length of the equation.**Auxiliary Space:** O(1)