Python-ի միջին մակարդակ

PyTown ֆայլային համակարգ

PyTown-ի աշխարհում ֆայլերը համակարգչում դասավորված են այլ կերպ, քան մերը: Դրանք կազմակերպված են ներդիր բառարանում, որտեղ բանալիները ներկայացնում են «թղթապանակների անունները» կամ «ֆայլի անունները», իսկ արժեքները կամ «ենթապանակներ» ներկայացնող բառարաններ են կամ «ֆայլերի ընդլայնումներ»(extension) ներկայացնող տողեր: Օրինակ, համակարգի պարզեցված տարբերակը կարող է այսպիսի տեսք ունենալ.
{
    'home': {
        'myDocs': {
            'file1': 'txt',
            'file2': 'doc',
            'myPics': {
                'pic1': 'jpg',
                'pic2': 'jpg'
            }
        }
    },
    'etc': {
        'configs': {
            'config1': 'cfg',
            'config2': 'cfg'
        }
    }
}
Ձեր խնդիրն է գրել ռեկուրսիվ ծրագիր, որը կարող է անցնել այս ներդիր բառարանով և գտնել բոլոր ֆայլերը, որոնք ավարտվում են որոշակի ընդլայնմամբ(extension):
Մուտքի առաջին տողը պարունակում է մեկ տող, որը ներկայացնում է այն ընդլայնումը, որը մենք փնտրում ենք: Հաջորդ տողը պարունակում է ներդիր բառարան, որը ներկայացնում է 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: 0.2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue