Sistema de Archivos de PyTown
En el mundo de PyTown, los archivos en una computadora se organizan de una manera diferente a la nuestra. Están estructurados en un diccionario anidado donde las claves representan los 'nombres de carpetas' o 'nombres de archivos', y los valores son ya sea diccionarios que representan 'subcarpetas' o cadenas que representan 'extensiones de archivos'. Por ejemplo, una versión simplificada del sistema podría verse así:
{
'home': {
'myDocs': {
'file1': 'txt',
'file2': 'doc',
'myPics': {
'pic1': 'jpg',
'pic2': 'jpg'
}
}
},
'etc': {
'configs': {
'config1': 'cfg',
'config2': 'cfg'
}
}
}
Tu tarea es escribir un programa recursivo que pueda navegar a través de este diccionario anidado y encontrar todos los archivos que terminan con una extensión particular.
La primera línea de la entrada contiene una sola cadena que representa la extensión que estamos buscando. La siguiente línea contiene el diccionario anidado que representa la estructura de directorios de PyTown. El diccionario se proporciona como una cadena, y necesitas convertirlo a un diccionario para su posterior procesamiento (usa el módulo
json
para hacerlo).El programa debe mostrar una lista de todos los archivos que tienen la extensión dada. Los archivos deben representarse por su ruta completa separada por una barra (
/
), similar a los sistemas de archivos basados en UNIX. La ruta debe comenzar desde la clave de primer nivel hasta el nombre del archivo, cada uno separado por una /
. Imprime cada archivo en una nueva línea.Entrada | Salida |
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: Las rutas de los archivos deben estar en el orden de su aparición en la entrada. El anidamiento de los diccionarios puede ser de profundidad arbitraria.
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB