diff --git a/lesson_13/maps_java/maps_app/src/main/java/com/codedifferently/lesson13/Lesson13.java b/lesson_13/maps_java/maps_app/src/main/java/com/codedifferently/lesson13/Lesson13.java index 0c981abbf..5847508e6 100644 --- a/lesson_13/maps_java/maps_app/src/main/java/com/codedifferently/lesson13/Lesson13.java +++ b/lesson_13/maps_java/maps_app/src/main/java/com/codedifferently/lesson13/Lesson13.java @@ -1,5 +1,8 @@ package com.codedifferently.lesson13; +import java.util.HashMap; +import java.util.Map; + public class Lesson13 { /** @@ -7,6 +10,18 @@ public class Lesson13 { * https://leetcode.com/problems/permutation-difference-between-two-strings */ public int findPermutationDifference(String s, String t) { - return 0; + Map indexMap = new HashMap<>(); + for (int i = 0; i < s.length(); i++) { + indexMap.put(s.charAt(i), i); + } + + int permutationDifference = 0; + + for (int i = 0; i < t.length(); i++) { + char ch = t.charAt(i); + int indexInS = indexMap.get(ch); + permutationDifference += Math.abs(indexInS - i); + } + return permutationDifference; } } diff --git a/lesson_13/maps_ts/src/lesson13.ts b/lesson_13/maps_ts/src/lesson13.ts index 5207487e2..09771647e 100644 --- a/lesson_13/maps_ts/src/lesson13.ts +++ b/lesson_13/maps_ts/src/lesson13.ts @@ -3,5 +3,21 @@ * https://leetcode.com/problems/permutation-difference-between-two-strings */ export function findPermutationDifference(s: string, t: string): number { - return 0; + const indexMap = new Map(); + + for (let i = 0; i < s.length; i++) { + indexMap.set(s[i], i); + } + + let permutationDifference = 0; + + for (let i = 0; i < t.length; i++) { + const ch = t[i]; + const indexInS = indexMap.get(ch); + if (indexInS !== undefined) { + permutationDifference += Math.abs(indexInS - i); + } + } + + return permutationDifference; }