A distância de Hamming entre duas strings de igual comprimento é o número de posições nas quais os caracteres correspondentes são diferentes. Se as cordas não tiverem o mesmo comprimento, a distância de Hamming não será definida.
Desafio
Escreva um programa ou função que encontre a maior distância de Hamming dentre todos os pares de cadeias de uma lista de cadeias, preenchida conforme necessário, de acordo com as regras descritas abaixo.
Os personagens serão de dentro a-zA-Z0-9.
As cadeias podem não ter o mesmo comprimento; portanto, para cada comparação, a cadeia mais curta deve ser preenchida da seguinte maneira:
- enrole a corda desde o início quantas vezes for necessário para corresponder ao comprimento necessário
- mude os casos das letras cada vez que invólucro estranho (1º, 3º, 5º, etc.)
- deixe as coisas do lado de fora
a-zA-Zinalteradas ao embrulhar
Por exemplo, digamos que você precise preencher a sequência de 5 caracteres ab9Cdpara que ela termine com 18 caracteres. Você terminaria com:
ab9CdAB9cDab9CdAB9
^^^^^ ^^^
com ^adicionado debaixo das 1ª e 3ª envoltórios de destaque às mudanças de caso.
Entrada / Saída
O formato de entrada / saída é flexível. Você pode assumir que a entrada possui pelo menos duas strings e que todas as strings terão pelo menos um caractere.
A saída é um número inteiro.
Regras
Isso é código-golfe . Aplicam-se regras padrão.
Casos de teste
[ "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
Implementação de referência
Testei os exemplos com o código R (completamente não destruído) que você pode tentar aqui para comparar outros exemplos que você pode experimentar com o seu código.
["AacaAc", "Aab"] => 2. Um golfe intencional para a minha resposta Jelly teria falhado nesse caso, mas passaria por todos os outros.