Sha256: 22c7174f9a9ebb9a9f76fb042ee989cca53dcb5d1fe1832bf944a543bb8bfa21

Contents?: true

Size: 973 Bytes

Versions: 167

Compression:

Stored size: 973 Bytes

Contents

public class Hamming {
    private final int hammingDistance;

    public Hamming(String leftStrand, String rightStrand) {
        hammingDistance = computeHammingDistance(leftStrand, rightStrand);
    }

    public int getHammingDistance() {
        return hammingDistance;
    }

    private int computeHammingDistance(String leftStrand, String rightStrand) {
        if(leftStrand.length() != rightStrand.length()) {
            throw new IllegalArgumentException("leftStrand and rightStrand must be of equal length.");
        }
        final int length = Math.min(leftStrand.length(), rightStrand.length());
        int distance = 0;
        for (int i = 0; i < length; i++) {
          distance += hammingContributionAt(i, leftStrand, rightStrand);
        }

        return distance;
    }

    private int hammingContributionAt(int index, String leftStrand, String rightStrand) {
      return leftStrand.charAt(index) != rightStrand.charAt(index) ? 1 : 0;
    }

}

Version data entries

167 entries across 167 versions & 1 rubygems

Version Path
trackler-2.2.1.72 tracks/java/exercises/hamming/.meta/src/reference/java/Hamming.java
trackler-2.2.1.71 tracks/java/exercises/hamming/.meta/src/reference/java/Hamming.java
trackler-2.2.1.70 tracks/java/exercises/hamming/.meta/src/reference/java/Hamming.java
trackler-2.2.1.69 tracks/java/exercises/hamming/.meta/src/reference/java/Hamming.java
trackler-2.2.1.68 tracks/java/exercises/hamming/.meta/src/reference/java/Hamming.java
trackler-2.2.1.67 tracks/java/exercises/hamming/.meta/src/reference/java/Hamming.java
trackler-2.2.1.66 tracks/java/exercises/hamming/.meta/src/reference/java/Hamming.java
trackler-2.2.1.65 tracks/java/exercises/hamming/.meta/src/reference/java/Hamming.java
trackler-2.2.1.64 tracks/java/exercises/hamming/.meta/src/reference/java/Hamming.java
trackler-2.2.1.63 tracks/java/exercises/hamming/.meta/src/reference/java/Hamming.java
trackler-2.2.1.62 tracks/java/exercises/hamming/.meta/src/reference/java/Hamming.java
trackler-2.2.1.61 tracks/java/exercises/hamming/.meta/src/reference/java/Hamming.java
trackler-2.2.1.60 tracks/java/exercises/hamming/.meta/src/reference/java/Hamming.java
trackler-2.2.1.59 tracks/java/exercises/hamming/.meta/src/reference/java/Hamming.java
trackler-2.2.1.58 tracks/java/exercises/hamming/.meta/src/reference/java/Hamming.java
trackler-2.2.1.57 tracks/java/exercises/hamming/.meta/src/reference/java/Hamming.java
trackler-2.2.1.56 tracks/java/exercises/hamming/.meta/src/reference/java/Hamming.java
trackler-2.2.1.55 tracks/java/exercises/hamming/.meta/src/reference/java/Hamming.java
trackler-2.2.1.54 tracks/java/exercises/hamming/.meta/src/reference/java/Hamming.java
trackler-2.2.1.53 tracks/java/exercises/hamming/.meta/src/reference/java/Hamming.java