From 26925ed59ee45c68c74c3de3f7fd64d07d69794c Mon Sep 17 00:00:00 2001 From: Wakidur Rahaman Date: Mon, 19 Dec 2022 11:30:42 +0900 Subject: [PATCH] encode decode --- src/exercises/string/shortening-by-decode-id.ts | 15 +++++++++++++++ .../{shortening.ts => shortening-by-encode-id.ts} | 0 2 files changed, 15 insertions(+) create mode 100644 src/exercises/string/shortening-by-decode-id.ts rename src/exercises/string/{shortening.ts => shortening-by-encode-id.ts} (100%) 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