假设我有两个字符串。打电话给他们和乙。两个字符串都没有重复的字符。
如何找到将变成B的最短插入,移动和删除操作序列,其中:
insert(char, offset)
char
在给定offset
的字符串中插入move(from_offset, to_offset)
将当前偏移的字符移动from_offset
到新位置,使其具有偏移to_offset
delete(offset)
删除处的字符offset
示例应用程序:您执行数据库查询,并在您的网站上显示结果。以后,您重新运行数据库查询,发现结果已更改。您想要使用最少的DOM操作数来更改页面上的内容以匹配数据库中当前的内容。为什么要最短的操作顺序有两个原因。首先,效率。当只有几条记录更改时,您要确保执行而不是O(n )DOM操作,因为它们很昂贵。第二,正确性。如果一项从一个位置移动到另一个位置,则您希望通过单个操作移动关联的DOM节点,而又不破坏和重新创建它们。否则,您将失去焦点状态,<input>
元素的内容等。