Jarak Hamming antara dua string dengan panjang yang sama adalah jumlah posisi di mana karakter yang sesuai berbeda. Jika string tidak memiliki panjang yang sama, jarak Hamming tidak ditentukan.
Tantangan
Tulis program atau fungsi yang menemukan jarak Hamming terbesar dari semua pasangan string dari daftar string, diisi seperti yang dipersyaratkan sesuai dengan aturan yang dijelaskan di bawah ini.
Karakter akan berasal dari dalam a-zA-Z0-9
.
Panjang string mungkin tidak sama, jadi untuk setiap perbandingan, string yang lebih pendek harus diisi sebagai berikut:
- bungkus tali dari awal sebanyak yang diperlukan untuk mencocokkan panjang yang dibutuhkan
- mengubah huruf-huruf setiap pembungkus waktu ganjil (1, 3, 5, dll.)
- biarkan barang-barang di luar
a-zA-Z
tidak berubah saat dibungkus
Misalnya, Anda perlu membuat string 5 karakter ab9Cd
agar berakhir dengan 18 karakter. Anda akan berakhir dengan:
ab9CdAB9cDab9CdAB9
^^^^^ ^^^
dengan ^
menambahkan di bawah wraps 1 dan 3 untuk menyoroti perubahan huruf.
Input output
Format input / output fleksibel. Anda dapat mengasumsikan input memiliki setidaknya dua string, dan bahwa semua string memiliki setidaknya satu karakter.
Outputnya adalah integer.
Aturan
Ini adalah kode-golf . Aturan standar berlaku.
Uji kasus
[ "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
Implementasi referensi
Saya menguji contoh-contoh dengan kode R (yang sama sekali tidak dikenali) yang dapat Anda coba di sini untuk membandingkan contoh lain yang mungkin Anda coba dengan kode Anda.
["AacaAc", "Aab"] => 2
. Sebuah golf bertujuan untuk jawaban Jelly saya akan gagal dalam kasus itu, tetapi akan melewati semua yang lain.