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