Autorské riešenie
Ak sa pozrieme na zoznam predstavujúci celý obsah priečinka zistíme, že je to:
Napriek tomu, isté vzory v tejto štruktúre nachádzame:
Prechádzať prvkami takéhoto zoznamu a vyhodnocovať ich význam dokážeme pomocou cyklu. Na túto úlohu si vieme vytvoriť šikovnú funkciu: pocty_typov. Problém nastane, ak prvkom je zoznam. Z predchádzajúceho textu vieme, že aj on má rovnakú štruktúru ako zoznam, ktorým práve prechádzame. Na analýzu tohto podzoznamu teda môžeme opäť využiť funkciu pocty_typov. Ostáva ešte zabezpečiť, aby sme výsledky z jednotlivých zoznamov (podpriečinkov) postupne akumulovali. Na toto môžeme využiť napr. slovník. Výsledné riešenie môže vyzerať nasledovne:
Všimnime si niekoľko detailov:
Vaše zaujímavé riešenia a najčastejšie chyby Žiacke riešenia tejto úlohy môžeme rozdeliť do dvoch skupín. Menšia časť z vás sa snažila rekurzívnou štruktúrou prechádza pomocou cyklov alebo túto štruktúru skonvertovať do jedného reťazca a podľa zátvoriek "[" identifikovať jednotlivé časti zoznamov. V princípe je to možné, aj keď omnoho prácnejšie. Väčšia časť z vás na prechod rekurzívnou štruktúrou použila rekurzívnu funkciu. Tieto riešenia sa líšili v implementačných detailoch (pomocná funkcia, pomocná dátová štruktúra ...) ale v princípe implementovali správnu myšlienku. Za zmienku stojí riešeniu tímu nayR guru, ktorý rekurziu simuloval radom. Benefitom tohto riešenia je, že nemá nevýhody rekurzie (pamäťová náročnosť, obmedzená úroveň vnorenia rekurzie v Python-e). |
||||||||||
|
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |
||||||||||