Der Hamming-Abstand zwischen zwei Saiten gleicher Länge ist die Anzahl der Positionen, an denen sich die entsprechenden Zeichen unterscheiden. Wenn die Saiten nicht gleich lang sind, ist die Hamming-Distanz nicht definiert.
Herausforderung
Schreiben Sie ein Programm oder eine Funktion, die aus einer Liste von Zeichenfolgen den größten Hamming-Abstand unter allen Zeichenfolgenpaaren ermittelt.
Die Charaktere werden von innen sein a-zA-Z0-9.
Die Zeichenfolgen sind möglicherweise nicht gleich lang. Daher muss für jeden Vergleich die kürzere Zeichenfolge wie folgt aufgefüllt werden:
- Wickeln Sie die Zeichenfolge von Anfang an so oft ein, bis die erforderliche Länge erreicht ist
- Ändern Sie die Groß- und Kleinschreibung der Buchstaben bei jedem ungeraden Umbruch (1., 3., 5. usw.)
- Lassen Sie die Dinge
a-zA-Zbeim Wickeln draußen unverändert
Angenommen, Sie müssen die Zeichenfolge mit 5 Zeichen auffüllen, ab9Cddamit sie 18 Zeichen enthält. Sie würden am Ende mit:
ab9CdAB9cDab9CdAB9
^^^^^ ^^^
mit ^unter dem 1. und 3. Umbruch hinzugefügt, um Änderungen an Groß- und Kleinschreibung hervorzuheben.
Input-Output
Das Eingabe- / Ausgabeformat ist flexibel. Sie können davon ausgehen, dass die Eingabe mindestens zwei Zeichen enthält und dass alle Zeichen mindestens ein Zeichen enthalten.
Die Ausgabe ist eine Ganzzahl.
Regeln
Das ist Code-Golf . Es gelten Standardregeln.
Testfälle
[ "a", "b" ] => 1
[ "a", "b", "c" ] => 1
[ "a", "a", "c" ] => 1
[ "abc", "abcd" ] => 1
[ "abc12D5", "abC34d3", "ABC14dabc23DAbC89d"] => 17
[ "a", "Aaa", "AaaA", "aAaAa", "aaaaaaaaaaaaaa", "AAaAA", "aAa" ] => 8
["AacaAc", "Aab"] => 2
Referenzimplementierung
Ich habe die Beispiele mit (vollständig ungolfed) R-Code getestet, den Sie hier ausprobieren können , um andere Beispiele, die Sie möglicherweise ausprobieren, mit Ihrem Code zu vergleichen.
["AacaAc", "Aab"] => 2. Ein gezieltes Golfspielen auf meine Jelly-Antwort hätte diesen Fall nicht bestanden, aber alle anderen bestanden.