Auf Thema antworten

Eigentlich sollte meine Methode deine aufrufen (hammingDistance(...)):

[code=Java]public class Foo {


    public static void main(String[] args) {

        String a = "anatolien";

        String b = "toll";

        System.out.println(hammingDistance(a, b));


    }


    public static int hammingDistance(String a, String b) {

        String longStr = a.length() > b.length() ? a : b;

        String shortStr = a.length() > b.length() ? b : a;

        int distance = Integer.MAX_VALUE; // da distance sicher im 1. Schleifendurchgang gesetzt werden soll,

                                          // wird hier distance auf denn grösstmöglichen Wert gesetzt

        for (int i = 0; i < longStr.length() - shortStr.length(); i++) {

            int actDist = hammingDistanceSameLength(longStr.substring(i, i + shortStr.length()), shortStr);

            distance = Math.min(actDist, distance); // gibt die kleinere von beiden Zahlen zurück

        }

        return distance;

    }


    public static int hammingDistanceSameLength(String a, String b) {

        int countSubstitutions = 0;

        for (int i = 0; i < a.length(); i++) {

            if (a.charAt(i) != b.charAt(i)) {

                countSubstitutions++;

            }

        }

        return countSubstitutions;

    }

}[/code]



Oben