【问题标题】:Transform one list of objects into another list将一个对象列表转换为另一个列表
【发布时间】: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


【解决方案1】:

您可以使用模式flyweight,为此您需要在缓存中维护已创建的对象。 Java 中的字符串就是这种模式的一个很好的例子。

【讨论】:

  • 我知道这是如何工作的。我最终只浏览了每个列表一次。生病实施它并回来。谢谢!! :)
猜你喜欢
  • 2013-08-14
  • 2014-07-12
  • 2015-09-03
  • 1970-01-01
  • 2022-06-10
  • 1970-01-01
  • 2021-12-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多