← Lesson
Hop Limits and Acyclic Graphs
Joeven
Run
Reset
Python loads on first run
EDGES = {("intake", "billing"), ("intake", "tech")} def allowed(src, dst): return (src, dst) in EDGES def run(hops, max_hops=4): path = ["intake"] seen = set() for dst in hops: if len(path) >= max_hops: return {"stop": "max_hops", "path": path} src = path[-1] if not allowed(src, dst): return {"stop": "illegal_edge", "from": src, "to": dst, "path": path} key = src + "->" + dst if key in seen: return {"stop": "duplicate", "path": path} seen.add(key) path.append(dst) return {"stop": "done", "path": path} print(run(["billing"])) print(run(["tech", "intake"])) print(run(["billing", "tech"], max_hops=2))
Run to execute this in your browser. Nothing is sent to a server.