Bela Organização de Tarefas

Como o novo gestor de projeto numa empresa tecnológica em rápido crescimento, foi-te atribuída a responsabilidade de gerir uma lista de tarefas complexa e diversificada. Esta lista, contudo, não é uma simples lista plana, mas sim hierárquica, onde cada tarefa pode potencialmente ter múltiplas subtarefas associadas. As tarefas e subtarefas são representadas numa lista aninhada onde cada item é ou uma única tarefa (como uma string) ou uma lista de subtarefas.
O teu desafio é escrever uma função recursiva que navegue por esta hierarquia e imprima todas as tarefas e subtarefas na ordem em que aparecem na lista aninhada. Para melhorar a legibilidade e facilitar a compreensão, cada subtarefa deve ser indentada com um tabulador a mais do que a sua tarefa pai.
A entrada será uma lista aninhada de n tarefas e subtarefas. Cada item na lista é ou uma tarefa (como uma string) ou outra lista que representa subtarefas. Podes carregar a lista com eval(input()) ou json.loads(...).
O programa deve imprimir todas as tarefas e subtarefas como strings, na ordem em que aparecem na lista. Cada subtarefa deve ser indentada com um tabulador a mais do que a sua tarefa pai.
Entrada
Saída
["Task 1", ["Subtask 1.1", "Subtask 1.2", ["Subtask 1.2.1", "Subtask 1.2.2"], "Subtask 1.3"], "Task 2", ["Subtask 2.1"]]
Task 1 Subtask 1.1 Subtask 1.2 Subtask 1.2.1 Subtask 1.2.2 Subtask 1.3 Task 2 Subtask 2.1
Nota: No output, cada tabulação é representada por um caráter \t. Além disso, a ordem das tarefas e subtarefas no output deve seguir a ordem em que aparecem na lista aninhada de entrada.
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue