Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 21.3k
Expand file tree
/
Copy pathPangram.java
More file actions
Latest commit
80 lines (74 loc) · 2.38 KB
/
Copy pathPangram.java
File metadata and controls
80 lines (74 loc) · 2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
packagecom.thealgorithms.strings;
importjava.util.HashSet;
/**
* Wikipedia: https://en.wikipedia.org/wiki/Pangram
*/
publicfinalclassPangram {
privatePangram() {
}
/**
* Test code
*/
publicstaticvoidmain(String[] args) {
assertisPangram("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
publicstaticbooleanisPangramUsingSet(Strings) {
HashSet<Character> alpha = newHashSet<>();
s = s.trim().toLowerCase();
for (inti = 0; i < s.length(); i++) {
if (s.charAt(i) != ' ') {
alpha.add(s.charAt(i));
}
}
returnalpha.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}
*/
publicstaticbooleanisPangram(Strings) {
boolean[] lettersExisting = newboolean[26];
for (charc : s.toCharArray()) {
intletterIndex = c - (Character.isUpperCase(c) ? 'A' : 'a');
if (letterIndex >= 0 && letterIndex < lettersExisting.length) {
lettersExisting[letterIndex] = true;
}
}
for (booleanletterFlag : lettersExisting) {
if (!letterFlag) {
returnfalse;
}
}
returntrue;
}
/**
* 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}
*/
publicstaticbooleanisPangram2(Strings) {
if (s.length() < 26) {
returnfalse;
}
s = s.toLowerCase(); // Converting s to Lower-Case
for (chari = 'a'; i <= 'z'; i++) {
if (s.indexOf(i) == -1) {
returnfalse; // if any alphabet is not present, return false
}
}
returntrue;
}
}