ダメラウ・レーベンシュタイン距離
2つの文字列 a {\displaystyle a} および b {\textstyle b} の間の制限ダメラウ・レーベンシュタイン距離を定義するためにまず、文字列 a {\textstyle a} の部分文字列 a [ 1 , i ] {\textstyle a[1,i]} と、 b {\textstyle b} の部分文字列 b [ 1 , j ] {\textstyle b[1,j]} の間の制限距離関数 d a , b  ( i , j ) {\textstyle \operatorname {d} _{a,b}(i,j)} を、次のように再帰的に定義する:
d a , b  ( i , j ) = min { 0 if i = j = 0 d a , b  ( i − 1 , j ) + 1 if i > 0 d a , b  ( i , j − 1 ) + 1 if j > 0 d a , b  ( i − 1 , j − 1 ) + 1 ( a [ i ] ≠ b [ j ] ) if i , j > 0 d a , b  ( i − 2 , j − 2 ) + 1 if i , j > 1 and a [ i ] = b [ j − 1 ] and a [ i − 1 ] = b [ j ] {\displaystyle \qquad \operatorname {d} _{a,b}(i,j)=\min {\begin{cases}0&{\text{if }}i=j=0\\\operatorname {d} _{a,b}(i-1,j)+1&{\text{if }}i>0\\\operatorname {d} _{a,b}(i,j-1)+1&{\text{if }}j>0\\\operatorname {d} _{a,b}(i-1,j-1)+1_{(a[i]\neq b[j])}&{\text{if }}i,j>0\\\operatorname {d} _{a,b}(i-2,j-2)+1&{\text{if }}i,j>1{\text{ and }}a[i]=b[j-1]{\text{ and }}a[i-1]=b[j]\\\end{cases}}}
d a , b  ( i − 2 , j − 2 ) + 1 {\textstyle \operatorname {d} _{a,b}(i-2,j-2)+1} : a [ i ] = b [ j − 1 ] {\textstyle a[i]=b[j-1]} かつ a [ i − 1 ] = b [ j ] {\textstyle a[i-1]=b[j]} のとき、 a [ i − 1 ] {\textstyle a[i-1]} と a [ i ] {\textstyle a[i]} の交換、あるいは a [ i − 1 ] {\textstyle a[i-1]} と a [ i ] {\textstyle a[i]} の交換をしたと見なして編集回数を 1 {\textstyle 1} 回だけ増やす
a {\textstyle a} と b {\textstyle b} の間の制限ダメラウ・レーベンシュタイン距離は、文字列全体の関数値 d a , b  ( | a | , | b | ) {\textstyle \operatorname {d} _{a,b}(|a|,|b|)} で与えられる。ここで | a | {\textstyle |a|} および | b | {\textstyle |b|} はそれぞれ文字列 a {\textstyle a} および b {\textstyle b} の長さ(文字数)である。
DNAでは挿入、削除、置換、および交換が頻繁に生じ、しかもどれも同程度の時間スケールで起こるので、ダメラウ・レーベンシュタイン距離は2つのDNA鎖の間の変化を計る計量として使うことができる。DNA、タンパク質、および他のバイオインフォマティクスなど、要素の整列に関連する課題では、ダメラウ・レーベンシュタイン距離に深く関係するニードルマン・ブンシュ・アルゴリズムやスミス・ウォーターマン・アルゴリズムなどを使うのが一般的である。