From f167f6f6361225f15df308f55d79ac51148e0c36 Mon Sep 17 00:00:00 2001 From: XavierCruz5106 Date: Wed, 23 Oct 2024 21:06:42 +0000 Subject: [PATCH 1/2] feat: implemented LeetCode 3146 using a map --- lesson_13/maps_ts/src/lesson13.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lesson_13/maps_ts/src/lesson13.ts b/lesson_13/maps_ts/src/lesson13.ts index 5207487e2..be8606319 100644 --- a/lesson_13/maps_ts/src/lesson13.ts +++ b/lesson_13/maps_ts/src/lesson13.ts @@ -3,5 +3,17 @@ * https://leetcode.com/problems/permutation-difference-between-two-strings */ export function findPermutationDifference(s: string, t: string): number { - return 0; + const map = new Map(); + + for (let i = 0; i < t.length; i++) { + map.set(t[i], i); + } + + let difference = 0; + for (let i = 0; i < s.length; i++) { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + difference += Math.abs(i - map.get(s[i])!); + } + + return difference; } From ad141ef097f5d40b7bfdc00964a772cbfae851e8 Mon Sep 17 00:00:00 2001 From: XavierCruz5106 Date: Mon, 28 Oct 2024 13:34:26 +0000 Subject: [PATCH 2/2] feat: removed bang, checked if idx is undefined --- lesson_13/maps_ts/src/lesson13.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lesson_13/maps_ts/src/lesson13.ts b/lesson_13/maps_ts/src/lesson13.ts index be8606319..c5898a316 100644 --- a/lesson_13/maps_ts/src/lesson13.ts +++ b/lesson_13/maps_ts/src/lesson13.ts @@ -11,8 +11,10 @@ export function findPermutationDifference(s: string, t: string): number { let difference = 0; for (let i = 0; i < s.length; i++) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - difference += Math.abs(i - map.get(s[i])!); + const idx = map.get(s[i]); + if (idx != undefined) { + difference += Math.abs(i - idx); + } } return difference;