Una Elegante Organizzazione delle Attività
Come nuovo project manager in una società tecnologica in rapida crescita, ti viene affidata la responsabilità di gestire un elenco di attività complesso e variegato. Questo elenco, tuttavia, non è una semplice lista piatta ma piuttosto una gerarchia, dove ogni attività può avere multiple sottoattività associate. Le attività e le sottoattività sono rappresentate in una lista annidata dove ogni elemento è o una singola attività (come stringa) o una lista di sottoattività.
La tua sfida è scrivere una funzione ricorsiva che navighi attraverso questa gerarchia e stampi tutte le attività e sottoattività nell'ordine in cui appaiono nella lista annidata. Per rendere il tutto più leggibile e facile da comprendere, ogni sottoattività dovrebbe essere indentata con un tab in più rispetto alla sua attività principale.
L'input sarà una lista annidata di n attività e sottoattività. Ogni elemento della lista è o un'attività (come stringa) o un'altra lista che rappresenta le sottoattività. Puoi caricare la lista con
eval(input())
o json.loads(...)
.Il programma dovrebbe stampare tutte le attività e sottoattività come stringhe, nell'ordine in cui appaiono nella lista. Ogni sottoattività dovrebbe essere indentata con un tab in più rispetto alla sua attività principale.
Input | Output |
["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: Nell'output, ogni tab è rappresentato come un carattere
\t
. Inoltre, l'ordine delle attività e sottoattività nell'output dovrebbe seguire il loro ordine nella lista annidata di input.Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB