PyTown फ़ाइल सिस्टम
PyTown की दुनिया में, कंप्यूटर में फ़ाइलें हमारे तरीके से अलग ढंग से व्यवस्थित होती हैं। वे एक नेस्टेड डिक्शनरी के रूप में संगठित होती हैं, जहाँ कुंजियाँ 'फ़ोल्डर नाम' या 'फ़ाइल नाम' का प्रतिनिधित्व करती हैं, और मान या तो 'उप-फ़ोल्डर' को दर्शाने वाले डिक्शनरी होते हैं या 'फ़ाइल एक्सटेंशन' को दर्शाने वाली स्ट्रिंग्स। उदाहरण के लिए, सिस्टम का एक सरल संस्करण इस प्रकार दिख सकता है:
{
'home': {
'myDocs': {
'file1': 'txt',
'file2': 'doc',
'myPics': {
'pic1': 'jpg',
'pic2': 'jpg'
}
}
},
'etc': {
'configs': {
'config1': 'cfg',
'config2': 'cfg'
}
}
}
आपका काम एक पुनरावर्ती प्रोग्राम लिखना है जो इस नेस्टेड डिक्शनरी में नेविगेट कर सके और दिए गए एक्सटेंशन से समाप्त होने वाली सभी फ़ाइलों को खोज सके।
इनपुट की पहली पंक्ति में वह एकल स्ट्रिंग होगी जो उस एक्सटेंशन का प्रतिनिधित्व करती है जिसे हम खोज रहे हैं। अगली पंक्ति में PyTown की डायरेक्टरी संरचना को दर्शाने वाली नेस्टेड डिक्शनरी है। डिक्शनरी एक स्ट्रिंग के रूप में दी गई है, और आपको आगे की प्रक्रिया के लिए इसे डिक्शनरी में परिवर्तित करना होगा (इसके लिए
json
मॉड्यूल का उपयोग करें)।प्रोग्राम को उन सभी फ़ाइलों की सूची आउटपुट करनी चाहिए जिनका एक्सटेंशन दिया गया है। फ़ाइलों को उनके पूर्ण पथ द्वारा दर्शाया जाना चाहिए जो स्लैश (
/
) द्वारा विभाजित हों, ठीक UNIX-आधारित फ़ाइल सिस्टम की तरह। पथ को प्रथम-स्तर की कुंजी से लेकर फ़ाइल नाम तक शुरू होना चाहिए, प्रत्येक को /
से अलग किया जाना चाहिए। प्रत्येक फ़ाइल को नई पंक्ति में प्रिंट करें।इनपुट | आउटपुट |
cfg
{ "home": { "myDocs": { "file1": "txt", "file2": "doc", "myPics": { "pic1": "jpg", "pic2": "jpg" } } }, "etc": { "configs": { "config1": "cfg", "config2": "cfg" } } } | etc/configs/config1
etc/configs/config2 |
नोट: फ़ाइल पथ इनपुट में उनकी उपस्थिति के क्रम में होने चाहिए। डिक्शनरी का नेस्टिंग किसी भी गहराई का हो सकता है।
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB