Skip to content

Instantly share code, notes, and snippets.

@HashirHussain
Created October 4, 2023 09:23
Show Gist options
  • Save HashirHussain/1dc32e30e75331df75627d311fef2a66 to your computer and use it in GitHub Desktop.
Save HashirHussain/1dc32e30e75331df75627d311fef2a66 to your computer and use it in GitHub Desktop.
uncompress bfe.dev solution in javaScript
function uncompress(str) {
var result = str;
while (/\d/.test(result)) {
var start = result.lastIndexOf("(")
var end = result.indexOf(")")
var rounds = parseInt(result[start - 1], 10);
var repeats = result.substring(start + 1, end).repeat(rounds)
result = result.substring(0, start - 1) + repeats + result.substring(end + 1, result.length)
}
return result;
}
Test cases
var input = "3(ab)"
var expectedAnswer = "ababab";
console.log(uncompress(input) === expectedAnswer);
var input = "3(ab2(c))"
var expectedAnswer = "abccabccabcc";
console.log(uncompress(input) === expectedAnswer);
var input = "2(ab2(a2(b)))"
var expectedAnswer = "ababbabbababbabb";
console.log(uncompress(input) === expectedAnswer);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment