Filesystem di PyTown

Nel mondo di PyTown, i file in un computer sono organizzati in modo diverso rispetto al nostro. Sono strutturati in un dizionario annidato dove le chiavi rappresentano i 'nomi delle cartelle' o i 'nomi dei file', e i valori sono o dizionari che rappresentano 'sottocartelle' o stringhe che rappresentano le 'estensioni dei file'. Ad esempio, una versione semplificata del sistema potrebbe apparire così:
{
    'home': {
        'myDocs': {
            'file1': 'txt',
            'file2': 'doc',
            'myPics': {
                'pic1': 'jpg',
                'pic2': 'jpg'
            }
        }
    },
    'etc': {
        'configs': {
            'config1': 'cfg',
            'config2': 'cfg'
        }
    }
}
Il tuo compito è scrivere un programma ricorsivo che possa navigare attraverso questo dizionario annidato e trovare tutti i file che terminano con una particolare estensione.
La prima linea dell'input contiene una singola stringa che rappresenta l'estensione che stiamo cercando. La linea successiva contiene il dizionario annidato che rappresenta la struttura delle directory di PyTown. Il dizionario è dato come una stringa, e devi convertirlo in un dizionario per ulteriori elaborazioni (usa il modulo json per farlo).
Il programma dovrebbe produrre una lista di tutti i file che hanno l'estensione data. I file dovrebbero essere rappresentati dal loro percorso completo separato da una barra (/), simile ai file system basati su UNIX. Il percorso dovrebbe iniziare dalla chiave di primo livello fino al nome del file, ciascuno separato da una /. Stampa ogni file su una nuova linea.
Input
Output
cfg { "home": { "myDocs": { "file1": "txt", "file2": "doc", "myPics": { "pic1": "jpg", "pic2": "jpg" } } }, "etc": { "configs": { "config1": "cfg", "config2": "cfg" } } }
etc/configs/config1 etc/configs/config2
Nota: I percorsi dei file devono essere nell'ordine della loro apparizione nell'input. L'annidamento dei dizionari può essere di profondità arbitraria.
 

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