Ini adalah sekuel dari tantangan ini: Kode yang dekat dengan tantangan: Jumlah bilangan bulat
Tantangan dalam yang ini sedikit lebih sulit, dan juga membuat judul yang keren (Itulah sebabnya saya mengambilnya):
Hitung jarak Levenshtein antara dua string
Sama seperti tantangan terakhir, skor Anda dalam tantangan ini adalah jarak Levenshtein antara kode Anda dan kutipan di atas.
Jadi sekarang untuk detailnya!
Program Anda akan mengambil 2 input, baik string tanpa spasi tambahan atau baris baru, dan akan menampilkan jarak Levenshtein di antara mereka. Jarak Levenshtien didefinisikan sebagai jumlah penambahan, penghapusan, dan penggantian yang diperlukan untuk mengubah satu string ke string lainnya. Untuk informasi lebih lanjut tentang cara menghitungnya, lihat halaman Wikipedia yang tertaut di atas. Untuk menguji apakah program Anda berfungsi, gunakan kalkulator ini . Program Anda harus menampilkan apa pun kecuali jarak Levenshtein antara kedua string. Itu akan didiskualifikasi jika hal lain dikeluarkan. Contoh I / O:
Inputs:
test
test2
Output:
1
Inputs:
222
515
Output:
3
Inputs:
Test
test
Output:
1
Kode Anda mungkin tidak memiliki no-ops atau komentar.
sumber
R, jarak 35
Ini menciptakan fungsi
Calculate
dengan parameterthe
danLevenshtein
. Menggunakan fungsiadist
bawaan R untuk menghitung jarak. Parameter string padaadist
dasarnyathe
danLevenshtein
diubah namanya menjadibetween
dantwo
.sumber
PHP4.1, jarak
32221514Yang sangat mendasar, tidak ada yang menarik.
Atau versi yang lebih pendek:
Agar ini berfungsi, Anda perlu mengirim / mengatur variabel POST / GET / COOKIE / sesi dengan tombol:
distance
(istance
untuk yang lebih pendek)between_two_strings
(etweentwostrin
untuk yang lebih pendek)Argumennya dalam urutan itu.
Uji skor di http://ideone.com/QzNZ8T
Contoh:
sumber
"Your code may not have no-ops or comments."
dan hasil edit Anda cukup menambahkan komentar HTML.PHP, jarak 44
Gunakan
levenshtein
fungsi bawaan dari perpustakaan standar PHP dan beri nama argumen untuk mencoba meminimalkan jarak.sumber
$two,$strings
?;
echo$Calculate_the=levenshtein($_GET[distance_between_two],$_GET[strings]);
Pip, jarak 50
Tidak menggunakan fungsi Levenshtein bawaan!
Kode ini mengimplementasikan algoritma Levenshtein rekursif ; karena itu, ini sangat lambat, butuh beberapa detik bahkan untuk rangkaian panjang 5. Saya tidak akan merekomendasikan menjalankan program sendiri untuk memeriksanya!
Inilah kode dasar saya, dengan spasi dan komentar:
Perubahan utama dalam versi final adalah menetapkan beberapa nilai ke variabel sementara
c
dane
, yang muncul dalam string tantangan dan dengan demikian mengurangi jarak Levenshtein sedikit.sumber