Your question is Rearrange Code Scramble. Start with the requirements on the right.
Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.
The code blocks in The's code editor were scrambled. Each block lists the blocks that must appear before it because they define required functions, classes, or constants. Restore a valid execution order.
Return the lexicographically smallest valid ordering of block IDs. When multiple currently available blocks can be selected, choose the ID that comes first lexicographically. If the dependencies contain a cycle, return an empty list because no executable ordering exists.
Implement restore_code_order(blocks), where blocks is a list of dictionaries. Each dictionary has:
id: a unique string identifying one code block.depends_on: a list of IDs that must appear earlier than this block.Return a list of block IDs containing every input block exactly once, or [] if no valid ordering exists.
def restore_code_order(blocks):