Skip to content

Instantly share code, notes, and snippets.

@frectonz
Created December 26, 2022 09:06
Show Gist options
  • Save frectonz/c8388bf31fbe305dc9c52bc99981495e to your computer and use it in GitHub Desktop.
Save frectonz/c8388bf31fbe305dc9c52bc99981495e to your computer and use it in GitHub Desktop.
function replaceZeros(input: string): number {
let zeroes = 0;
const res = input
.split("")
.reduce((acc: string[], curr, index, digits) => {
const next = digits[index + 1];
if (curr === "0" && next === "0") {
zeroes++;
} else if (curr === "0" && next !== "0") {
zeroes++;
acc.push(zeroes.toString());
zeroes = 0;
} else {
acc.push(curr);
}
return acc;
}, []);
return parseInt(res.join(""));
}
import { assertEquals } from "https://deno.land/std@0.168.0/testing/asserts.ts";
Deno.test("test 1", () => {
const res = replaceZeros("1234500362000440");
assertEquals(res, 1234523623441);
});
Deno.test("test 2", () => {
const res = replaceZeros("123450036200044");
assertEquals(res, 123452362344);
});
Deno.test("test 3", () => {
const res = replaceZeros("000000000000");
assertEquals(res, 12);
});
Deno.test("test 4", () => {
const res = replaceZeros("123456789");
assertEquals(res, 123456789);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment