mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-12-19 07:00:35 +08:00
Fix typos in src/main/java/com/thealgorithms/strings/Pangram.java Co-authored-by: a 19151554+alxkm@users.noreply.github.com
81 lines
2.4 KiB
Java
81 lines
2.4 KiB
Java
package com.thealgorithms.strings;
|
|
|
|
import java.util.HashSet;
|
|
|
|
/**
|
|
* Wikipedia: https://en.wikipedia.org/wiki/Pangram
|
|
*/
|
|
public final class Pangram {
|
|
private Pangram() {
|
|
}
|
|
|
|
/**
|
|
* Test code
|
|
*/
|
|
public static void main(String[] args) {
|
|
assert isPangram("The quick brown fox jumps over the lazy dog");
|
|
assert !isPangram("The quick brown fox jumps over the azy dog"); // L is missing
|
|
assert !isPangram("+-1234 This string is not alphabetical");
|
|
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<Character> alpha = new HashSet<>();
|
|
s = s.trim().toLowerCase();
|
|
for (int i = 0; i < s.length(); i++) {
|
|
if (s.charAt(i) != ' ') {
|
|
alpha.add(s.charAt(i));
|
|
}
|
|
}
|
|
return alpha.size() == 26;
|
|
}
|
|
|
|
/**
|
|
* 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 isPangram(String s) {
|
|
boolean[] lettersExisting = new boolean[26];
|
|
for (char c : s.toCharArray()) {
|
|
int letterIndex = c - (Character.isUpperCase(c) ? 'A' : 'a');
|
|
if (letterIndex >= 0 && letterIndex < lettersExisting.length) {
|
|
lettersExisting[letterIndex] = true;
|
|
}
|
|
}
|
|
for (boolean letterFlag : lettersExisting) {
|
|
if (!letterFlag) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Checks if a String is Pangram or not by checking if each alphabet is present or not
|
|
*
|
|
* @param s The String to check
|
|
* @return {@code true} if s is a Pangram, otherwise {@code false}
|
|
*/
|
|
public static boolean isPangram2(String s) {
|
|
if (s.length() < 26) {
|
|
return false;
|
|
}
|
|
s = s.toLowerCase(); // Converting s to Lower-Case
|
|
for (char i = 'a'; i <= 'z'; i++) {
|
|
if (s.indexOf(i) == -1) {
|
|
return false; // if any alphabet is not present, return false
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
}
|