From d4fefdeccbe72ef7a4b94a64e9521ce5714d8f97 Mon Sep 17 00:00:00 2001 From: Abdullah Khan Date: Sun, 8 Oct 2023 14:45:44 +0530 Subject: [PATCH] refactor: Update AnagramSnippet.java (#186) * Update AnagramSnippet.java Moved the array declaration after the if statement to minimise the unnecessary array creation in case the function returns from the if statement. * Updated the Readme file for the related changes --------- Co-authored-by: abd --- README.md | 6 ++++-- src/main/java/string/AnagramSnippet.java | 7 +++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 99497fbc..894dc0de 100644 --- a/README.md +++ b/README.md @@ -823,11 +823,13 @@ public static double calculateMatchRating(double firstPlayerRating, double secon public boolean isAnagram(String s1, String s2) { var l1 = s1.length(); var l2 = s2.length(); - var arr1 = new int[256]; - var arr2 = new int[256]; + if (l1 != l2) { return false; } + + var arr1 = new int[256]; + var arr2 = new int[256]; for (var i = 0; i < l1; i++) { arr1[s1.charAt(i)]++; diff --git a/src/main/java/string/AnagramSnippet.java b/src/main/java/string/AnagramSnippet.java index 29a75264..7a1d2015 100644 --- a/src/main/java/string/AnagramSnippet.java +++ b/src/main/java/string/AnagramSnippet.java @@ -41,11 +41,14 @@ public class AnagramSnippet { public static boolean isAnagram(String s1, String s2) { var l1 = s1.length(); var l2 = s2.length(); - var arr1 = new int[256]; - var arr2 = new int[256]; + if (l1 != l2) { return false; } + + var arr1 = new int[256]; + var arr2 = new int[256]; + for (var i = 0; i < l1; i++) { arr1[s1.charAt(i)]++; arr2[s2.charAt(i)]++;