Elegante Aufgabenorganisation
Als neuer Projektmanager in einem schnell wachsenden Technologieunternehmen hast du die Verantwortung erhalten, eine komplexe und vielfältige Aufgabenliste zu verwalten. Diese Liste ist jedoch keine einfache flache Liste, sondern eine hierarchische, bei der jede Aufgabe potenziell mehrere Unteraufgaben hat. Die Aufgaben und Unteraufgaben sind in einer verschachtelten Liste dargestellt, wobei jedes Element entweder eine einzelne Aufgabe (als String) oder eine Liste von Unteraufgaben ist.
Deine Herausforderung besteht darin, eine rekursive Funktion zu schreiben, die diese Hierarchie durchläuft und alle Aufgaben und Unteraufgaben in der Reihenfolge ausgibt, in der sie in der verschachtelten Liste erscheinen. Zur besseren Lesbarkeit und zum leichteren Verständnis sollte jede Unteraufgabe um einen Tabulator mehr eingerückt sein als ihre übergeordnete Aufgabe.
Die Eingabe ist eine verschachtelte Liste von n Aufgaben und Unteraufgaben. Jedes Element in der Liste ist entweder eine Aufgabe (als String) oder eine weitere Liste, die Unteraufgaben darstellt. Du kannst die Liste mit
eval(input())
oder json.loads(...)
laden.Das Programm sollte alle Aufgaben und Unteraufgaben als Strings in der Reihenfolge ausgeben, in der sie in der Liste erscheinen. Jede Unteraufgabe sollte um einen Tabulator mehr eingerückt sein als ihre übergeordnete Aufgabe.
Eingabe | Ausgabe |
["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 |
Hinweis: In der Ausgabe wird jeder Tabulator als
\t
Zeichen dargestellt. Außerdem sollte die Reihenfolge der Aufgaben und Unteraufgaben in der Ausgabe der Reihenfolge in der verschachtelten Liste der Eingabe entsprechen.Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB