【发布时间】:2019-04-12 08:17:54
【问题描述】:
我正在使用 python 来复制一些文件。但我无法得到正确的复制顺序。
假设我有一堂课:
class Info:
def __init__(self, source: str, destination: str):
self.source = source
self.destination = destination
我有一个Info 的列表。
复制顺序的规则是:
如果 A.destination 包含 B.source,则将 B 放在 A 后面。
例如
这里我们有三个Info
Id source destination
Info1 Root/A -> Root/B/A
Info2 Root/B -> Root/D/B
Info3 Root/C -> Root/A/C
Info1.destination 包含 Info2.source,所以将 Info2 放在 Info1 后面,
Info3.destination 包含 Info1.source,所以将 Info1 放在 Info3 后面。
最终订单是[Info3, Info1, Info2]
我认为最大的困难是一些Info无法比较。
是否有一些有效的算法来实现这一点?谢谢!
【问题讨论】:
标签: python algorithm sorting tree