2 つの文字列間の編集距離の問題について読んでいます。
編集距離の公式を用いた動的計画法で解くことができます。私が理解できないのは、その有用性です。まず第一に、これは 2 つの文字列の最長の共通サブシーケンスを知ることとどのように違うのでしょうか?
編集距離が最小の文字列を選択する場合は、文字列の最大 LCS を使用することもできます。
さらに、実際に置換を行うようにコーディングすると、コードは次のようになります。
if(a.length == b.length){
for(int i = 0;i < a.length;i++){
a[i] = b[i];
}
}
else{
a = new char[b.length];
for(int i = 0;i < a.length;i++){
a[i] = b[i];
}
}
つまり、文字を置き換えるだけです。割り当てを行うことと、文字が同じかどうかを確認することと、そうでない場合は実行時にのみ割り当てを行うこととの間に違いはありますか? どちらも一定時間の操作ではありませんか?
この問題で私は何を誤解していますか?