diff --git a/src/exercises/string/shortening-by-decode-id.ts b/src/exercises/string/shortening-by-decode-id.ts new file mode 100644 index 0000000..1cc3997 --- /dev/null +++ b/src/exercises/string/shortening-by-decode-id.ts @@ -0,0 +1,15 @@ +const DICTIONARY01 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'.split(''); + +function decodeId(id: string) { + const base: number = DICTIONARY01.length; + let decoded: string | number = 0; + + for (let i = 0; i < id.split('').length; i++) { + decoded = decoded * base + DICTIONARY01.indexOf(id.charAt(i)); + } + + return decoded; +} + +console.log(encodeId(11231230)); // prints 'VhU2' +console.log(decodeId('VhU2')); // prints '11231230' diff --git a/src/exercises/string/shortening.ts b/src/exercises/string/shortening-by-encode-id.ts similarity index 100% rename from src/exercises/string/shortening.ts rename to src/exercises/string/shortening-by-encode-id.ts