Interview Guides

Given a list of task names tasks and a list of dependency pairs dependencies, return a valid execution order of all tasks. Each dependency [a, b] means task a must be completed before task b. If no valid ordering exists because the dependency graph contains a cycle, return an empty list.
1 <= len(tasks) <= 10^40 <= len(dependencies) <= 2 * 10^4tasks[a, b] means a -> b