Sha256: 0f9ea603ff6e794125f0d1ddf0a792cf8ca283a79227978ae29b7372730fc35d

Contents?: true

Size: 528 Bytes

Versions: 396

Compression:

Stored size: 528 Bytes

Contents

#include "hamming.h"
#include <algorithm>
#include <stdexcept>

namespace hamming
{

int compute(std::string const& lhs, std::string const& rhs)
{
    if (rhs.length() != lhs.length())
    {
        throw std::domain_error("Hamming distance is not defined for different length strings.");
    }

    int count = 0;
    for (auto p = std::mismatch(lhs.begin(), lhs.end(), rhs.begin());
        p.first != lhs.end();
        p = std::mismatch(++p.first, lhs.end(), ++p.second))
    {
        ++count;
    }
    return count;
}

}

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.139 tracks/cpp/exercises/hamming/example.cpp
trackler-2.2.1.138 tracks/cpp/exercises/hamming/example.cpp
trackler-2.2.1.137 tracks/cpp/exercises/hamming/example.cpp
trackler-2.2.1.136 tracks/cpp/exercises/hamming/example.cpp
trackler-2.2.1.135 tracks/cpp/exercises/hamming/example.cpp
trackler-2.2.1.134 tracks/cpp/exercises/hamming/example.cpp
trackler-2.2.1.133 tracks/cpp/exercises/hamming/example.cpp
trackler-2.2.1.132 tracks/cpp/exercises/hamming/example.cpp
trackler-2.2.1.131 tracks/cpp/exercises/hamming/example.cpp
trackler-2.2.1.130 tracks/cpp/exercises/hamming/example.cpp
trackler-2.2.1.129 tracks/cpp/exercises/hamming/example.cpp
trackler-2.2.1.128 tracks/cpp/exercises/hamming/example.cpp
trackler-2.2.1.127 tracks/cpp/exercises/hamming/example.cpp
trackler-2.2.1.126 tracks/cpp/exercises/hamming/example.cpp
trackler-2.2.1.125 tracks/cpp/exercises/hamming/example.cpp
trackler-2.2.1.124 tracks/cpp/exercises/hamming/example.cpp
trackler-2.2.1.123 tracks/cpp/exercises/hamming/example.cpp
trackler-2.2.1.122 tracks/cpp/exercises/hamming/example.cpp
trackler-2.2.1.121 tracks/cpp/exercises/hamming/example.cpp
trackler-2.2.1.120 tracks/cpp/exercises/hamming/example.cpp