Jarak edit Levenshtein antara dua string adalah jumlah penyisipan, penghapusan, atau penggantian minimum yang mungkin untuk mengubah satu kata menjadi kata lain. Dalam hal ini, setiap penyisipan, penghapusan dan penggantian memiliki biaya 1.
Misalnya, jarak antara
roll
danrolling
3, karena penghapusan berharga 1, dan kami harus menghapus 3 karakter. Jarak antaratoll
dantall
adalah 1, karena biaya penggantian 1.
Tugas Anda adalah untuk menghitung perbedaan pengeditan Levenshtein antara string input dan sumber Anda. Ini diberi tag quine , jadi quine curang (misalnya, membaca kode sumber Anda) tidak diizinkan.
Aturan
Input tidak akan kosong dan akan terdiri dari ASCII, kecuali jika sumber Anda mengandung non-ASCII, dalam hal ini input mungkin termasuk Unicode. Apapun, jarak Levenshtein akan diukur dalam karakter, bukan byte.
Outputnya adalah jarak edit Levenshtein minimum dari input dan sumber Anda.
Ini adalah kode-golf , jadi jawaban tersingkat, dalam byte, menang.
Jawaban:
Python 2 + sequtils , 101 byte
sumber
Python 2 ,
278258 byteCobalah online!
Ini hanya quine biasa dalam Python, dicampur dengan algoritma Levenshtein dari jawaban ini . Perhatikan bahwa itu menjadi
sangatsangat (terima kasih kepada Tn. Xcoder: P) lambat.sumber
l(s%s,input())
(tidak yakin)?JavaScript, 113 byte
Ini adalah quine yang valid .
Ide dicuri dari jawaban lain.
sumber