tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 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 {
|
||||
uint bitset;
|
||||
|
||||
foreach (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(isPangram("the quick brown fox jumps over the lazy dog"));
|
||||
assert(!isPangram("ABCDEFGHIJKLMNOPQSTUVWXYZ"));
|
||||
assert(!isPangram("ABCDEFGHIJKL.NOPQRSTUVWXYZ"));
|
||||
assert(isPangram("ABC.D.E.FGHI*J/KL-M+NO*PQ R\nSTUVWXYZ"));
|
||||
}
|
||||
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