python advanced מסתיים ב-2026-11-24

Build order (topological sort)

A build system knows which tasks depend on which: deps["deploy"] = ["test", "build"] means test and build must run before deploy. Write build_order(deps) that returns a list with every task exactly once, each after all of its dependencies.

  • Tasks that only appear as dependencies are tasks too.
  • When several tasks are ready at the same time, take them in alphabetical order, so the result is deterministic.
  • If there is a cycle, raise ValueError whose message names the tasks in the cycle (any order is fine, e.g. "cycle: a, b, c").

Acceptance criteria

  • The tests at the bottom print All tests passed.

Hint: Kahn's algorithm with a heapq of ready tasks.

נפתר עד כה על ידי 0 אנשים.

python
עורךCtrl + Enter

            
        

כשהבדיקות מדפיסות "All tests passed", האתגר מסומן כפתור בדפדפן הזה.

שליחת הפתרון לבדיקה