2012-01-09 20 views
2

距離を編集すると、1つの文字列に必要な挿入、削除、または置換の数が検索されます。私はこのアルゴリズムのスワップも含めたいと思っています。たとえば、 "apple"と "appel"は1の編集距離を与えます。スワップで距離を編集

答えて

-1

ここでアルゴリズムを参照してください。

http://www.csse.monash.edu.au/~lloyd/tildeAlgDS/Dynamic/Edit/

あなたは、スワップのためのさまざまなコストを与える追加、削除することができます。あなたが定義されている

m[i,j] = min(m[i-1,j-1] 
     + if s1[i]=s2[j] then 0 else cost_swap fi, 
     m[i-1, j] + cost_insert, 
     m[i, j-1] + cost_delete), i=1..|s1|, j=1..|s2| 
+1

あなたが答えたのは、代替えがスワップではないということです。上記の2番目の文字列を交換した私の例では、 "el"は "le"を与え、したがって最初の文字列 –

4

編集距離はDamerau・レーベンシュタイン距離と呼ばれています。可能な実装はWikipedia pageにあります。

関連する問題