Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
19
Task/Pangram-checker/D/pangram-checker-1.d
Normal file
19
Task/Pangram-checker/D/pangram-checker-1.d
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
bool isPangram(in string text) pure nothrow @safe @nogc {
|
||||
uint bitset;
|
||||
|
||||
foreach (immutable c; text) {
|
||||
if (c >= 'a' && c <= 'z')
|
||||
bitset |= (1u << (c - 'a'));
|
||||
else if (c >= 'A' && c <= 'Z')
|
||||
bitset |= (1u << (c - 'A'));
|
||||
}
|
||||
|
||||
return bitset == 0b11_11111111_11111111_11111111;
|
||||
}
|
||||
|
||||
void main() {
|
||||
assert("the quick brown fox jumps over the lazy dog".isPangram);
|
||||
assert(!"ABCDEFGHIJKLMNOPQSTUVWXYZ".isPangram);
|
||||
assert(!"ABCDEFGHIJKL.NOPQRSTUVWXYZ".isPangram);
|
||||
assert("ABC.D.E.FGHI*J/KL-M+NO*PQ R\nSTUVWXYZ".isPangram);
|
||||
}
|
||||
22
Task/Pangram-checker/D/pangram-checker-2.d
Normal file
22
Task/Pangram-checker/D/pangram-checker-2.d
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
import std.string, std.traits, std.uni;
|
||||
|
||||
// Do not compile with -g (debug info).
|
||||
enum Alphabet : dstring {
|
||||
DE = "abcdefghijklmnopqrstuvwxyzßäöü",
|
||||
EN = "abcdefghijklmnopqrstuvwxyz",
|
||||
SV = "abcdefghijklmnopqrstuvwxyzåäö"
|
||||
}
|
||||
|
||||
bool isPangram(S)(in S s, dstring alpha = Alphabet.EN)
|
||||
pure /*nothrow*/ if (isSomeString!S) {
|
||||
foreach (dchar c; alpha)
|
||||
if (indexOf(s, c) == -1 && indexOf(s, std.uni.toUpper(c)) == -1)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void main() {
|
||||
assert(isPangram("the quick brown fox jumps over the lazy dog".dup, Alphabet.EN));
|
||||
assert(isPangram("Falsches Üben von Xylophonmusik quält jeden größeren Zwerg"d, Alphabet.DE));
|
||||
assert(isPangram("Yxskaftbud, ge vår wczonmö iqhjälp"w, Alphabet.SV));
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue