Système de fichiers PyTown

Dans le monde de PyTown, les fichiers d'un ordinateur sont organisés d'une manière différente de la nôtre. Ils sont structurés sous forme de dictionnaires imbriqués où les clés représentent les noms de dossiers ou de fichiers, et les valeurs sont soit des dictionnaires représentant des sous-dossiers, soit des chaînes de caractères indiquant les extensions de fichiers. Par exemple, une version simplifiée du système peut ressembler à ceci :
{
    'home': {
        'myDocs': {
            'file1': 'txt',
            'file2': 'doc',
            'myPics': {
                'pic1': 'jpg',
                'pic2': 'jpg'
            }
        }
    },
    'etc': {
        'configs': {
            'config1': 'cfg',
            'config2': 'cfg'
        }
    }
}
Votre tâche consiste à écrire un programme récursif capable de parcourir ce dictionnaire imbriqué et de trouver tous les fichiers qui se terminent par une extension particulière.
La première ligne de l'entrée contient une chaîne de caractères unique qui représente l'extension que nous recherchons. La ligne suivante contient le dictionnaire imbriqué représentant la structure des répertoires de PyTown. Le dictionnaire est fourni sous forme de chaîne, et vous devez le convertir en dictionnaire pour le traiter (utilisez le module json pour cela).
Le programme doit produire une liste de tous les fichiers qui ont l'extension donnée. Les fichiers doivent être représentés par leur chemin complet séparé par un slash (/), comme dans les systèmes de fichiers de type UNIX. Le chemin doit partir de la clé de premier niveau jusqu'au nom du fichier, chaque élément étant séparé par un /. Affichez chaque fichier sur une nouvelle ligne.
Entrée
Sortie
cfg { "home": { "myDocs": { "file1": "txt", "file2": "doc", "myPics": { "pic1": "jpg", "pic2": "jpg" } } }, "etc": { "configs": { "config1": "cfg", "config2": "cfg" } } }
etc/configs/config1 etc/configs/config2
Note : Les chemins des fichiers doivent être dans l'ordre de leur apparition dans l'entrée. L'imbrication des dictionnaires peut être de profondeur arbitraire.
 

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