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