Question
Rebuild a binary tree from its level-order serialization, then group the node values by column, moving left to right across columns. Inside one column the values should follow the order in which a breadth-first walk reaches them. ```python def solve(raw: str) -> str: ... ``` ## Requirements - The first line is a level-order serialization separated by commas. A missing child is written as `null`, and the whole line may optionally be wrapped in square brackets. An empty line or `[]` means there is no tree. - Children attach in queue order: each non-null node consumes the next two slots as its left child and then its right child. - The root sits in column 0; a left edge shifts the column by `-1` and a right edge by `+1`. - Emit one inner list per occupied column, ordered from the smallest column offset to the largest. - Inside a column, preserve breadth-first visit order rather than sorting the values. - Format the answer exactly as nested lists with no spaces, for example `[[9],[3,15],[20],[7]]`. An empty tree answers `[]`. - Node values may repeat, so treat each node as a separate entry. - `run_case` passes `case["stdin"]` to `solve`. - Do not append a trailing newline to the returned string; return the value exactly once.