Sha256: 86dfa8dc47faca09560b1e85d82312e53929a9d2cf0b65441e8ddd89486bec1a

Contents?: true

Size: 1.15 KB

Versions: 213

Compression:

Stored size: 1.15 KB

Contents

module pangram;

import std.uni : toLower;

bool isPangram(string str)
{
    bool[dchar] letters;
    foreach (char letter; str)
    {
        auto lower = toLower(letter);
        if (lower >= 'a' && lower <= 'z')
        {
            letters[lower] = true;
        }
    }
    return letters.length == 26;
}

unittest
{
    assert(!isPangram(""));
    assert(isPangram("the quick brown fox jumps over the lazy dog"));
    // missing x
    assert(!isPangram("a quick movement of the enemy will jeopardize five gunboats"));
    assert(!isPangram("the quick brown fish jumps over the lazy dog"));
    // test underscores
    assert(isPangram("the_quick_brown_fox_jumps_over_the_lazy_dog"));
    // test pangram with numbers
    assert(isPangram("the 1 quick brown fox jumps over the 2 lazy dogs"));
    // test missing letters replaced by numbers
    assert(!isPangram("7h3 qu1ck brown fox jumps ov3r 7h3 lazy dog"));
    // test pangram with mixed case and punctuation
    assert(isPangram("\"Five quacking Zephyrs jolt my wax bed\""));
    // pangram with non-ascii characters
    assert(isPangram("Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich"));
}

Version data entries

213 entries across 213 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/d/exercises/pangram/example/pangram.d
trackler-2.2.1.179 tracks/d/exercises/pangram/example/pangram.d
trackler-2.2.1.178 tracks/d/exercises/pangram/example/pangram.d
trackler-2.2.1.177 tracks/d/exercises/pangram/example/pangram.d
trackler-2.2.1.176 tracks/d/exercises/pangram/example/pangram.d
trackler-2.2.1.175 tracks/d/exercises/pangram/example/pangram.d
trackler-2.2.1.174 tracks/d/exercises/pangram/example/pangram.d
trackler-2.2.1.173 tracks/d/exercises/pangram/example/pangram.d
trackler-2.2.1.172 tracks/d/exercises/pangram/example/pangram.d
trackler-2.2.1.171 tracks/d/exercises/pangram/example/pangram.d
trackler-2.2.1.170 tracks/d/exercises/pangram/example/pangram.d
trackler-2.2.1.169 tracks/d/exercises/pangram/example/pangram.d
trackler-2.2.1.167 tracks/d/exercises/pangram/example/pangram.d
trackler-2.2.1.166 tracks/d/exercises/pangram/example/pangram.d
trackler-2.2.1.165 tracks/d/exercises/pangram/example/pangram.d
trackler-2.2.1.164 tracks/d/exercises/pangram/example/pangram.d
trackler-2.2.1.163 tracks/d/exercises/pangram/example/pangram.d
trackler-2.2.1.162 tracks/d/exercises/pangram/example/pangram.d
trackler-2.2.1.161 tracks/d/exercises/pangram/example/pangram.d
trackler-2.2.1.160 tracks/d/exercises/pangram/example/pangram.d