İki dize arasındaki düzenleme mesafesini Levenshtein algoritmasıyla hesaplayın. Kaç tek karakter düzeltmesi gerektiğini görün. Anında sonuç üretir.
Bu örnek, String Tools içindeki Levenshtein mesafesi hesaplamayı gösterir ve klasik “kitten” ile “sitting” karşılaştırmasıyla hazır gelir. İki dize gir ve birini diğerine dönüştürmek için gereken minimum tek karakterlik düzenleme sayısını gör.
Levenshtein mesafesi dinamik programlama kullanır. Her hücrenin alt dizeler arasındaki düzenleme mesafesini temsil ettiği bir matris kurulur. Algoritma, her konumda üç işlemi değerlendirerek matrisi doldurur:
| İşlem | Açıklama | Maliyet |
|---|---|---|
| Ekleme | Karakter ekle | 1 |
| Silme | Karakter çıkar | 1 |
| Değiştirme | Karakteri değiştir | 1 (farklıysa) |
Matrisin sağ alt hücresindeki son değer Levenshtein mesafesidir.
Klasik örnek 3 düzenleme gerektirir:
Mesafe = 3.
Algoritma O(m x n) zaman ve alanda çalışır; burada m ve n iki dizenin uzunluklarıdır. Çoğu pratik metin karşılaştırmasında (1000 karakter altı) bu işlem tarayıcıda anında tamamlanır.
Birkaç algoritma Levenshtein’i belirli kullanım durumları için değiştirir:
En büyük mesafe uzun dizenin uzunluğudur; bu, bir dize tamamen boşken her karakteri eklemen gerektiğinde olur. Uzunlukları m ve n olan iki dizede mesafe en fazla max(m, n) olur.
Karşılaştırma büyük-küçük harfe duyarlıdır. Hello ile hello arasındaki mesafe 1’dir (H/h farkı). Büyük-küçük harf duyarsız karşılaştırma için önce iki dizeyi de küçük harfe çevir.
Evet. Levenshtein mesafesi biyoinformatikte DNA veya protein dizileri arasındaki benzerliği ölçmek için yaygın kullanılır. Her karakter bir nükleotidi veya amino asidi temsil eder; düzenleme mesafesi diziler arasındaki mutasyon sayısını yansıtır.
Nothing you paste leaves this tab. Every tool runs entirely in your browser — no upload, no server, no account.