From ee2629c8ab5c5c27bd728fb02a92a67a74a76cbc Mon Sep 17 00:00:00 2001 From: ANKIT SAHA <85545712+Ankit-Saha08@users.noreply.github.com> Date: Sun, 1 Oct 2023 16:28:13 +0530 Subject: [PATCH] Update Pangram.java using Java Collections (#4479) * Update Pangram.java using Java Collections A simple separate function isPangramOrNot(String s) has been created which implements the Pangram checking of a string using Java Collection Framework approach. * Update Pangram.java using Java Collections * Updated some linting errors in Pangram.java * Update src/main/java/com/thealgorithms/strings/Pangram.java Co-authored-by: Debasish Biswas * Updated Pangram.java Method name updated to - isPangramUsingSet(String s) * Updated the testcases PangramTest.java Successfully updated the testcases in this same PR branch --------- Co-authored-by: Debasish Biswas --- .../com/thealgorithms/strings/Pangram.java | 18 ++++++++++++++++++ .../com/thealgorithms/strings/PangramTest.java | 5 +++++ 2 files changed, 23 insertions(+) diff --git a/src/main/java/com/thealgorithms/strings/Pangram.java b/src/main/java/com/thealgorithms/strings/Pangram.java index 4772ac826..9d7345794 100644 --- a/src/main/java/com/thealgorithms/strings/Pangram.java +++ b/src/main/java/com/thealgorithms/strings/Pangram.java @@ -1,5 +1,7 @@ package com.thealgorithms.strings; +import java.util.HashSet; + /** * Wikipedia: https://en.wikipedia.org/wiki/Pangram */ @@ -15,6 +17,22 @@ public class Pangram { assert !isPangram("\u0000/\\"); } + /** + * Checks if a String is considered a Pangram + * + * @param s The String to check + * @return {@code true} if s is a Pangram, otherwise {@code false} + */ + // alternative approach using Java Collection Framework + public static boolean isPangramUsingSet(String s) { + HashSet alpha = new HashSet(); + s = s.trim().toLowerCase(); + for (int i = 0; i < s.length(); i++) + if (s.charAt(i) != ' ') alpha.add(s.charAt(i)); + if (alpha.size() == 26) return true; + return false; + } + /** * Checks if a String is considered a Pangram * diff --git a/src/test/java/com/thealgorithms/strings/PangramTest.java b/src/test/java/com/thealgorithms/strings/PangramTest.java index 5d138a5ed..7ad79b203 100644 --- a/src/test/java/com/thealgorithms/strings/PangramTest.java +++ b/src/test/java/com/thealgorithms/strings/PangramTest.java @@ -17,5 +17,10 @@ public class PangramTest { assertFalse(Pangram.isPangram2("The quick brown fox jumps over the azy dog")); // L is missing assertFalse(Pangram.isPangram2("+-1234 This string is not alphabetical")); assertFalse(Pangram.isPangram2("\u0000/\\ Invalid characters are alright too")); + + assertTrue(Pangram.isPangramUsingSet("The quick brown fox jumps over the lazy dog")); + assertFalse(Pangram.isPangramUsingSet("The quick brown fox jumps over the azy dog")); // L is missing + assertFalse(Pangram.isPangramUsingSet("+-1234 This string is not alphabetical")); + assertFalse(Pangram.isPangramUsingSet("\u0000/\\ Invalid characters are alright too")); } }