Hi I'm trying to solve this recursion challenge, could anyone give me a hand to complete it please?
This is the challenge:
Have the function PlusMinus(num) read the num parameter being passed which will be a combination of 1 or more single digits, and determine if it's possible to separate the digits with either a plus or minus sign to get the final expression to equal zero. For example: if num is 35132 then it's possible to separate the digits the following way, 3 - 5 + 1 + 3 - 2, and this expression equals zero. Your program should return a string of the signs you used, so for this example your program should return -++-. If it's not possible to get the digit expression to equal zero, return the string not possible.
If there are multiple ways to get the final expression to equal zero, choose the one that contains more minus characters. For example: if num is 26712 your program should return -+-- and not +-+-.
Sample Test Cases:
Input: 199
Output: not possible
Input: 26712
Output: -+--
This is what I have tried:
const plusMinus = (num) => {
let arr = num.toString().split('').map(num => parseInt(num));
return plusMinusRec(arr, 0);
function plusMinusRec(arr, target){
if(arr.length == 1){
if(arr[0] == target){
return
} else {
return not possible;
}
}
let s1 = plusMinusRec(arr.slice(1), arr[0]);
if(s1 != not possible){
return - + s1;
}
let s2 = plusMinusRec(arr.slice(1), arr[0] * -1);
if(s2 != not possible){
return + + s2;
}
return not possible;
}
}
plusMinus(35132);