From 31ccef18170edbb717a68430528b88232037ebbd Mon Sep 17 00:00:00 2001 From: ANKIT SAHA <85545712+Ankit-Saha08@users.noreply.github.com> Date: Sun, 1 Oct 2023 12:08:58 +0530 Subject: [PATCH 1/6] 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. --- .../java/com/thealgorithms/strings/Pangram.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/java/com/thealgorithms/strings/Pangram.java b/src/main/java/com/thealgorithms/strings/Pangram.java index 4772ac826b5e..7ca579eece66 100644 --- a/src/main/java/com/thealgorithms/strings/Pangram.java +++ b/src/main/java/com/thealgorithms/strings/Pangram.java @@ -15,6 +15,22 @@ public static void main(String[] args) { 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} + */ + public static boolean isPangramOrNot(String s){ + // an approach using Java Collection Framework + Set 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 * From 9cc55c17e35d72b9d29e056923fe31261dd4fd9c Mon Sep 17 00:00:00 2001 From: ANKIT SAHA <85545712+Ankit-Saha08@users.noreply.github.com> Date: Sun, 1 Oct 2023 12:14:11 +0530 Subject: [PATCH 2/6] Update Pangram.java using Java Collections --- src/main/java/com/thealgorithms/strings/Pangram.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/strings/Pangram.java b/src/main/java/com/thealgorithms/strings/Pangram.java index 7ca579eece66..86fa647b8e63 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 */ @@ -23,7 +25,7 @@ public static void main(String[] args) { */ public static boolean isPangramOrNot(String s){ // an approach using Java Collection Framework - Set alpha = new HashSet(); + 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)); From 09aaffe08682f057ea20f6f0136a319361d051c7 Mon Sep 17 00:00:00 2001 From: ANKIT SAHA <85545712+Ankit-Saha08@users.noreply.github.com> Date: Sun, 1 Oct 2023 12:25:42 +0530 Subject: [PATCH 3/6] Updated some linting errors in Pangram.java --- src/main/java/com/thealgorithms/strings/Pangram.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/thealgorithms/strings/Pangram.java b/src/main/java/com/thealgorithms/strings/Pangram.java index 86fa647b8e63..30ad7ab6ec2f 100644 --- a/src/main/java/com/thealgorithms/strings/Pangram.java +++ b/src/main/java/com/thealgorithms/strings/Pangram.java @@ -23,12 +23,12 @@ public static void main(String[] args) { * @param s The String to check * @return {@code true} if s is a Pangram, otherwise {@code false} */ - public static boolean isPangramOrNot(String s){ + public static boolean isPangramOrNot(String s) { // an approach using Java Collection Framework 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 (s.charAt(i) != ' ') alpha.add(s.charAt(i)); if (alpha.size() == 26) return true; return false; } From 58e4b331c2d10010e4bbe37bd33408ae80ace698 Mon Sep 17 00:00:00 2001 From: ANKIT SAHA <85545712+Ankit-Saha08@users.noreply.github.com> Date: Sun, 1 Oct 2023 12:29:43 +0530 Subject: [PATCH 4/6] Update src/main/java/com/thealgorithms/strings/Pangram.java Co-authored-by: Debasish Biswas --- src/main/java/com/thealgorithms/strings/Pangram.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/strings/Pangram.java b/src/main/java/com/thealgorithms/strings/Pangram.java index 30ad7ab6ec2f..8e46997a74fe 100644 --- a/src/main/java/com/thealgorithms/strings/Pangram.java +++ b/src/main/java/com/thealgorithms/strings/Pangram.java @@ -23,8 +23,8 @@ public static void main(String[] args) { * @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 isPangramOrNot(String s) { - // an approach using Java Collection Framework HashSet alpha = new HashSet(); s = s.trim().toLowerCase(); for (int i = 0; i < s.length(); i++) From 86840dd1773c346046d05188848036efd6830080 Mon Sep 17 00:00:00 2001 From: ANKIT SAHA <85545712+Ankit-Saha08@users.noreply.github.com> Date: Sun, 1 Oct 2023 12:40:34 +0530 Subject: [PATCH 5/6] Updated Pangram.java Method name updated to - isPangramUsingSet(String s) --- src/main/java/com/thealgorithms/strings/Pangram.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/thealgorithms/strings/Pangram.java b/src/main/java/com/thealgorithms/strings/Pangram.java index 8e46997a74fe..9d734579406c 100644 --- a/src/main/java/com/thealgorithms/strings/Pangram.java +++ b/src/main/java/com/thealgorithms/strings/Pangram.java @@ -23,8 +23,8 @@ public static void main(String[] args) { * @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 isPangramOrNot(String s) { + // 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++) From 6f052137f6108e6af8057973b34df7c919436b49 Mon Sep 17 00:00:00 2001 From: ANKIT SAHA <85545712+Ankit-Saha08@users.noreply.github.com> Date: Sun, 1 Oct 2023 14:34:25 +0530 Subject: [PATCH 6/6] Updated the testcases PangramTest.java Successfully updated the testcases in this same PR branch --- src/test/java/com/thealgorithms/strings/PangramTest.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/test/java/com/thealgorithms/strings/PangramTest.java b/src/test/java/com/thealgorithms/strings/PangramTest.java index 5d138a5ed7fb..7ad79b203b45 100644 --- a/src/test/java/com/thealgorithms/strings/PangramTest.java +++ b/src/test/java/com/thealgorithms/strings/PangramTest.java @@ -17,5 +17,10 @@ public void testPangram() { 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")); } }