From 373e52e6243ec38f0d4b0cc7ad319d4badeb6de1 Mon Sep 17 00:00:00 2001 From: Kotangora1 Date: Wed, 23 Oct 2024 21:05:41 +0000 Subject: [PATCH 1/7] feat: added lesson13 homework brute-force implementation by Yemi --- .../java/com/codedifferently/lesson13/Lesson13.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) 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..1080dbe9f 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,12 +1,13 @@ package com.codedifferently.lesson13; public class Lesson13 { - - /** - * Provide the solution to LeetCode 3146 here: - * https://leetcode.com/problems/permutation-difference-between-two-strings - */ public int findPermutationDifference(String s, String t) { - return 0; + int result = 0; + int strLen = s.length(); + for(int i= 0; i < strLen ; i++){ + char ch = s.charAt(i); + result = result + ( Math.abs(s.indexOf(ch) - t.indexOf(ch))); + } + return result; } } From e234bf5c9176ff6b1de8c1e1d151e33cfd616366 Mon Sep 17 00:00:00 2001 From: Kotangora1 Date: Wed, 23 Oct 2024 21:10:26 +0000 Subject: [PATCH 2/7] feat: handling spotless issue by Yemi --- .../main/java/com/codedifferently/lesson13/Lesson13.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 1080dbe9f..3bc47be38 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 @@ -4,9 +4,9 @@ public class Lesson13 { public int findPermutationDifference(String s, String t) { int result = 0; int strLen = s.length(); - for(int i= 0; i < strLen ; i++){ - char ch = s.charAt(i); - result = result + ( Math.abs(s.indexOf(ch) - t.indexOf(ch))); + for (int i = 0; i < strLen; i++) { + char ch = s.charAt(i); + result = result + (Math.abs(s.indexOf(ch) - t.indexOf(ch))); } return result; } From f4d679cc0abb3d10ea8beeb435b3cbcabf7d0576 Mon Sep 17 00:00:00 2001 From: Kotangora1 Date: Wed, 23 Oct 2024 21:26:43 +0000 Subject: [PATCH 3/7] feat: Added typescript implementation of lesson13 by Yemi --- lesson_13/maps_ts/src/lesson13.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lesson_13/maps_ts/src/lesson13.ts b/lesson_13/maps_ts/src/lesson13.ts index 5207487e2..fdcef9e76 100644 --- a/lesson_13/maps_ts/src/lesson13.ts +++ b/lesson_13/maps_ts/src/lesson13.ts @@ -3,5 +3,11 @@ * https://leetcode.com/problems/permutation-difference-between-two-strings */ export function findPermutationDifference(s: string, t: string): number { - return 0; -} + let result = 0; + const strLen: number = s.length; + for (let i = 0; i < strLen; i++) { + const ch: string = s.charAt(i); + result = result + Math.abs(s.indexOf(ch) - t.indexOf(ch)); + } + return result; +} \ No newline at end of file From 7c12ebb74895d59d355d6e5cf31609e829e8203c Mon Sep 17 00:00:00 2001 From: Kotangora1 Date: Thu, 24 Oct 2024 00:42:15 +0000 Subject: [PATCH 4/7] feat: implementation of lesson13 using HashMap by Yemi --- .../com/codedifferently/lesson13/Lesson13.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) 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 3bc47be38..9ad95b45b 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,13 +1,19 @@ package com.codedifferently.lesson13; +import java.util.HashMap; + public class Lesson13 { public int findPermutationDifference(String s, String t) { + var indexMap = new HashMap(); + for (int i = 0; i < t.length(); i++) { + indexMap.put(t.charAt(i), i); + } + int result = 0; - int strLen = s.length(); - for (int i = 0; i < strLen; i++) { - char ch = s.charAt(i); - result = result + (Math.abs(s.indexOf(ch) - t.indexOf(ch))); + for (int i = 0; i < s.length(); i++) { + // Default to -1 if char not found + result += Math.abs(i - indexMap.getOrDefault(s.charAt(i), -1)); } return result; - } + } } From 1acecaf396fa969a9712f7e52a4e2fb2fffd6ab7 Mon Sep 17 00:00:00 2001 From: Kotangora1 Date: Thu, 24 Oct 2024 01:26:31 +0000 Subject: [PATCH 5/7] feat: spotless fix for HashMap implementation by Yemi --- .../main/java/com/codedifferently/lesson13/Lesson13.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 9ad95b45b..5bd191855 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 @@ -6,14 +6,14 @@ public class Lesson13 { public int findPermutationDifference(String s, String t) { var indexMap = new HashMap(); for (int i = 0; i < t.length(); i++) { - indexMap.put(t.charAt(i), i); + indexMap.put(t.charAt(i), i); } int result = 0; for (int i = 0; i < s.length(); i++) { - // Default to -1 if char not found - result += Math.abs(i - indexMap.getOrDefault(s.charAt(i), -1)); + // Default to -1 if char not found + result += Math.abs(i - indexMap.getOrDefault(s.charAt(i), -1)); } return result; - } + } } From 7e06bfca13341e6dd1784c33735fe0c1e05ea6ab Mon Sep 17 00:00:00 2001 From: Kotangora1 Date: Thu, 24 Oct 2024 01:35:58 +0000 Subject: [PATCH 6/7] feat: spotless fix for HashMap implementation by Yemi --- .../src/main/java/com/codedifferently/lesson13/Lesson13.java | 1 - 1 file changed, 1 deletion(-) 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 5bd191855..605e1b603 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 @@ -11,7 +11,6 @@ public int findPermutationDifference(String s, String t) { int result = 0; for (int i = 0; i < s.length(); i++) { - // Default to -1 if char not found result += Math.abs(i - indexMap.getOrDefault(s.charAt(i), -1)); } return result; From dd0c8ff292115ee09bd7de6052e756e2481ae0e9 Mon Sep 17 00:00:00 2001 From: Kotangora1 Date: Thu, 24 Oct 2024 02:19:44 +0000 Subject: [PATCH 7/7] feat: updated typescript implementation by Yemi --- lesson_13/maps_ts/src/lesson13.ts | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/lesson_13/maps_ts/src/lesson13.ts b/lesson_13/maps_ts/src/lesson13.ts index fdcef9e76..b0d483fdf 100644 --- a/lesson_13/maps_ts/src/lesson13.ts +++ b/lesson_13/maps_ts/src/lesson13.ts @@ -1,13 +1,14 @@ -/** - * Provide the solution to LeetCode 3146 here: - * https://leetcode.com/problems/permutation-difference-between-two-strings - */ export function findPermutationDifference(s: string, t: string): number { - let result = 0; - const strLen: number = s.length; - for (let i = 0; i < strLen; i++) { - const ch: string = s.charAt(i); - result = result + Math.abs(s.indexOf(ch) - t.indexOf(ch)); - } - return result; + const indexMap = new Map(); + + for (let i = 0; i < t.length; i++) { + indexMap.set(t.charAt(i), i); + } + + let result = 0; + for (let i = 0; i < s.length; i++) { + result += Math.abs(i - (indexMap.get(s.charAt(i)) ?? -1)); + } + + return result; } \ No newline at end of file