PyTownでファイル名を変更する
仮想世界のPyTownでは、すべてのデジタル文書やファイルが、ネストされた辞書として表現されるディレクトリやサブディレクトリに保存されています。町の市長であるCeePy氏は、これらの文書を整理し、正しく名前を付け、簡単にアクセスできるように維持する大きな責任を負っています。ある日、CeePy氏は非常に重要なファイルの名前が間違っていることに気づき、急いでそれを修正する必要がありました。
あなたの使命は、ネストされた辞書型のディレクトリ構造の中から特定のファイルを検索し、見つけた場合にそれをリネームする再帰的なPythonプログラムを書いて、CeePy氏を助けることです。ここで、キーはフォルダ名またはファイル名を表し、値はサブフォルダを表す辞書か、ファイル拡張子を表す文字列です。
入力の最初の行は、ネストされた辞書構造です。この辞書は、キーとしてのディレクトリと、値としての辞書または文字列で構成されています。文字列はファイルの拡張子であり、キー(ファイル名)と組み合わせることで完全なファイル名になります。
入力の2行目は、見つけてリネームする必要がある既存のファイル名(拡張子付き)です。
入力の3行目は、既存のファイルを変更する新しいファイル名です。
プログラムは、リネームされたファイルを含む修正後のネストされた辞書構造を返す必要があります。もしファイルがディレクトリ構造内で見つからなかった場合、プログラムは
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