2つの文字列があるとします。それらをおよびBと呼びます。どちらの文字列にも繰り返し文字はありません。
をBに変換する挿入、移動、削除操作の最短のシーケンスを見つけるにはどうすればよいですか?
insert(char, offset)
文字列char
の指定さoffset
れた位置に挿入しますmove(from_offset, to_offset)
現在オフセットfrom_offset
にある文字を新しい位置に移動して、オフセットを設定しますto_offset
delete(offset)
の文字を削除しますoffset
アプリケーション例:データベースクエリを実行し、結果をWebサイトに表示します。その後、データベースクエリを再実行し、結果が変更されたことを発見しました。最小数のDOM操作を使用して、現在データベースにあるものと一致するようにページの内容を変更したいとします。最短の操作シーケンスが必要な理由は2つあります。まず、効率。変更されるレコードが数個しかない場合は、O(n )ではなくを実行する必要があります。DOM操作。高価なため。第二に、正しさ。アイテムをある位置から別の位置に移動した場合、関連付けられたDOMノードを破棄して再作成せずに、1回の操作で移動する必要があります。そうしないと、フォーカス状態、<input>
要素のコンテンツなどが失われます。