diff --git a/lesson_13/maps_java/maps_app/build.gradle.kts b/lesson_13/maps_java/maps_app/build.gradle.kts index a84f2c075..586cd40ba 100644 --- a/lesson_13/maps_java/maps_app/build.gradle.kts +++ b/lesson_13/maps_java/maps_app/build.gradle.kts @@ -32,7 +32,7 @@ dependencies { application { // Define the main class for the application. - mainClass.set("com.codedifferently.lesson12.Lesson12") + mainClass.set("com.codedifferently.lesson13.Lesson13") } tasks.named("test") { 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..a196929d8 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,7 @@ package com.codedifferently.lesson13; +import java.util.HashMap; + public class Lesson13 { /** @@ -7,6 +9,27 @@ public class Lesson13 { * https://leetcode.com/problems/permutation-difference-between-two-strings */ public int findPermutationDifference(String s, String t) { - return 0; + HashMap indexMap = new HashMap<>(); + + for (int i = 0; i < s.length(); i++) { + indexMap.put(s.charAt(i), i); + } + + HashMap indexDifferences = new HashMap<>(); + int sumOfAbsoluteDiff = 0; + + for (int i = 0; i < t.length(); i++) { + char c = t.charAt(i); + int sIndex = indexMap.get(c); + int tIndex = i; + + int indexDiff = Math.abs(sIndex - tIndex); + + indexDifferences.put(c, indexDiff); + + sumOfAbsoluteDiff += indexDiff; + } + + return sumOfAbsoluteDiff; } }