Я использую 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
нельзя сравнивать.
Есть ли какой-нибудь эффективный алгоритм для достижения этой цели?Спасибо!