[1] 授業単元: プログラミング演習�V
[2] 問題文(含コード&リンク):
実行時引数で2つの文字列を与え、レーベンシュタイン距離を動的計画法で求める。
文字列は、英小文字で各10字以内とする。 作業表を出力する。以下のように実行し、作業表も出力する。
EditDist.exe bcabc abdd
0 1 2 3 4 5
1 1 2 2 3 4
2 1 2 3 2 3
3 2 2 3 3 3
4 3 3 3 4 4
距離 : 4

[3] 環境
 [3.1] OS: vista
 [3.2] コンパイラ名とバージョン: bcc
 [3.3] 言語: C言語
[4] 期限: 2010年10月14日
[5] その他の制限:なし

[参考]
レーベンシュタイン距離の効率的な計算には、動的計画法による算法が知られている。作業表を作り、左上から右下へ、
最も操作回数が少なくなるような経路を選んでいく。作業表の各数値は、左上から埋めていく。ある位置の上、左、左上の値を比べ、
最小値をその位置に書き込む。左上端では0とする。さらに、縦と横の文字が一致していなければ1を足す。右下端が求める距離に
なっている。どのような基本操作を行ったかは、右下端から最小となる方向を逆に辿っていけばよい。
右に進むことは、横向きの文字列の先頭文字を削除することに相当する。下に進むことは、縦向きの文字列の先頭文字を削除することに
相当する。右下に進むことは、両方の先頭文字を削除することに相当する。