La distanza di Hamming tra due stringhe di uguale lunghezza è il numero di posizioni in cui i caratteri corrispondenti sono diversi. Se le stringhe non hanno la stessa lunghezza, la distanza di Hamming non è definita.
Sfida
Scrivi un programma o una funzione che trova la più grande distanza di Hamming tra tutte le coppie di stringhe da un elenco di stringhe, imbottito come richiesto in base alle regole descritte di seguito.
I personaggi verranno dall'interno a-zA-Z0-9.
Le stringhe potrebbero non essere uguali in lunghezza, quindi per ogni confronto la stringa più corta deve essere riempita come segue:
- avvolgere la stringa dall'inizio tutte le volte necessarie per adattarsi alla lunghezza richiesta
- cambia i casi delle lettere ogni volta dispari (1 °, 3 °, 5 °, ecc.)
- lasciare le cose all'esterno
a-zA-Zinvariate quando si avvolgono
Ad esempio, supponiamo che sia necessario riempire la stringa di 5 caratteri in ab9Cdmodo che finisca con 18 caratteri. Si finirebbe con:
ab9CdAB9cDab9CdAB9
^^^^^ ^^^
con l' ^aggiunta sotto il 1 ° e il 3 ° involucro per evidenziare le modifiche al caso.
Input Output
Il formato di input / output è flessibile. Puoi supporre che l'input abbia almeno due stringhe e che tutte le stringhe abbiano almeno un carattere.
L'output è un numero intero.
Regole
Questo è code-golf . Si applicano le regole standard.
Casi test
[ "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
Implementazione di riferimento
Ho testato gli esempi con il codice R (completamente non salvato) che puoi provare qui per confrontare qualsiasi altro esempio che potresti provare con il tuo codice.
["AacaAc", "Aab"] => 2. Un golf intenzionale alla mia risposta di Jelly avrebbe fallito quel caso, ma avrebbe superato tutti gli altri.