On Thursday, 15 January 2015 at 19:49:14 UTC, Ali Çehreli wrote:
auto commonPrefixLength(S, T)(S a, T b)
{
    import std.range: zip;
    import std.algorithm: count;
    return zip(a, b).count!(ab => ab[0] == ab[1]);
}

unittest
{
    assert(commonPrefixLength("açde", "") == 0);
    assert(commonPrefixLength("açde", "xyz") == 0);
    assert(commonPrefixLength("açd", "açde") == 3);
    assert(commonPrefixLength("açdef", "açdef") == 5);
}

I want to terminate count on first mismatch like

    assert(commonPrefixLength("abc_d", "abc-d") == 3);

Your version will

    assert(commonPrefixLength("abc_d", "abc-d") == 4);

Reply via email to