2つの文字列の Levenshtein distance の計算には、よく知られた動的計画法によるアルゴリズムがあります。このアルゴリズムでは、それぞれの文字列の長さを N, M とすると計算量が
まで抑えられます。
今回考えた改善は以下のようなものです: 2つの文字列を S1, S2 とします。
証明は、levenshtein distance の定義の対称性から、「T1-T2 の距離が S1-S2 の距離と等しい」ことを示せば十分です。
この改善は時間/空間ともに共通先頭列と共通末尾列が長ければ長いほど効いてきます。