j
function solveExpression (exp) {
const operation = {
'*': (a, b) => a * b,
'+': (a, b) => a + b,
'/': (a, b) => a / b,
'-': (a, b) => a - b
}
for (let i = 0; i <= 9; i++) {
if (exp.includes(i)) {
continue
}
const replaced = exp.replace(/\?/g, i)
if (i === 0 && /(^|\D)0\d+/.test(replaced)) {
continue
}
const [a, operator, b, , result] = replaced.split(/(-(?!\d)|(?<=\d)-|[*=+])/)
if (operation[operator](+a, +b) === +result) {
return i
}
}
return -1
}