【发布时间】:2012-08-17 17:01:46
【问题描述】:
这是一个理论问题,所以我将使用伪代码。
我有一个需要转换为另一个列表的对象列表。
我实现了 Levenshtein 算法,效果很好,但我需要保留对象,而不是创建新对象。我可以暴力破解它,但我宁愿找到一种非 O(n*m) 的方法来做到这一点。
[obj1,obj2,obj3] -> [obj1,obj4,obj5,obj2,obj6,obj3]
obj1,obj2,obj3 必须是同一个对象,其余都是新创建的对象。
有人知道这方面的好算法吗?
【问题讨论】:
-
这个问题不可能用伪代码回答,因为答案取决于你的语言特性。 C++ 和 Java 的答案将大不相同。
-
是您的问题字符串中的对象。中间对象应该是什么样子的,是编辑距离为1的步骤吗?
-
没有对象是复杂的类。所有编辑距离都是 1。这些是有序用户内容的小列表。我在 C# 中执行此操作,列表是我们创建的类的列表。
标签: c# algorithm list sorting edit-distance