Write a function, uncompress, that takes in a string as an argument.
The input string will be formatted into multiple groups according to
the following pattern:number + char
for example, ‘2c’ or ‘3a’.
The function should return an uncompressed version of the string where
each ‘char’ of a group is repeated ‘number’ times consecutively. You
may assume that the input string is well-formed according to the
previously mentioned pattern.test_00: uncompress(“2c3a1t”); // -> ‘ccaaat’
Here is my code which is using a stack. The problem is that it’s only returning ‘cc’ and I can’t figure out why. I’ve console logged what goes into the IF ELSE and I’m hitting both so I don’t understand why nothing gets pushed to the stack.
Would really appreciate the help if someone can spot what I’m missing.
const uncompress = (s) => {
const nums = '23456789';
const stack = [];
for (let char of s) {
if (nums.includes(char)) {
stack.push(Number(char));
} else {
const num = stack.pop();
stack.push(char.repeat(num));
};
};
return stack.join('');
};