Переименование файла в PyTown
В виртуальном мире PyTown каждый цифровой документ или файл хранится в каталогах и подкаталогах, которые представлены в виде вложенных словарей. Мэру города, мистеру CeePy, возложена большая ответственность по поддержанию всех этих документов в порядке, с правильными именами и легким доступом. Однажды мистер CeePy обнаружил, что один очень важный файл был неправильно назван, и ему срочно нужно это исправить.
Ваша задача — помочь мистеру CeePy, написав рекурсивную программу на Python для поиска этого конкретного файла во вложенной структуре словарей директорий и переименовать его, если он найден. Здесь ключи представляют имена папок или файлов, а значения — либо словари, представляющие подкаталоги, либо строки, представляющие расширения файлов.
Первая строка ввода — это вложенная структура словаря. Этот словарь представляет директории в виде ключей и либо словарь, либо строку в качестве значений. Строки — это расширения файлов, которые, в сочетании со своими ключами (именами файлов), образуют полное имя файла.
Вторая строка ввода — это существующее имя файла (с его расширением), который нужно найти и переименовать.
Третья строка ввода — это новое имя файла, в которое следует переименовать существующий файл.
Программа должна вернуть измененную вложенную структуру словаря с переименованным файлом. Если файл не найден в структуре директорий, программа должна вывести
File not found
.Ввод | Вывод |
{"home": {"documents": {"report": ".docx", "data": ".csv", "analysis": ".txt"}, "pictures": {"beach": ".jpg", "portrait": ".png"}}, "desktop": {"important": ".pdf", "todo": ".txt"}}
important.pdf
urgent.pdf | {"home": {"documents": {"report": ".docx", "data": ".csv", "analysis": ".txt"}, "pictures": {"beach": ".jpg", "portrait": ".png"}}, "desktop": {"urgent": ".pdf", "todo": ".txt"}} |
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB