Файловая система PyTown
В мире PyTown файлы на компьютере организованы иначе, чем у нас. Они представлены в виде вложенного словаря, где ключи обозначают имена папок или файлов, а значения — либо словари, представляющие поддиректории, либо строки, обозначающие расширения файлов. Например, упрощённая версия такой системы может выглядеть так:
{
'home': {
'myDocs': {
'file1': 'txt',
'file2': 'doc',
'myPics': {
'pic1': 'jpg',
'pic2': 'jpg'
}
}
},
'etc': {
'configs': {
'config1': 'cfg',
'config2': 'cfg'
}
}
}
Вам нужно написать рекурсивную программу, которая может проходить через этот вложенный словарь и находить все файлы с определённым расширением.
Первая строка входных данных содержит единственную строку — расширение, которое мы ищем. Следующая строка содержит вложенный словарь, представляющий структуру каталогов PyTown. Словарь задан в виде строки, и вам нужно преобразовать его в словарь для дальнейшей обработки (используйте модуль json
для этого).
Программа должна вывести список всех файлов с заданным расширением. Файлы следует указывать с их полным путем, разделённым слешем (/
), как в UNIX-подобных файловых системах. Путь должен начинаться с ключа первого уровня до имени файла, разделяя каждый уровень /
. Выведите каждый файл на новой строке.
Ввод | Вывод |
cfg | etc/configs/config1 |
Примечание: Пути к файлам должны выводиться в порядке их появления во входных данных. Вложенность словарей может быть произвольной глубины.
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB