Autorské riešenie
Úloha o skladaní reťazcov vychádza reálneho procesu, ktorý sa anglicky nazýva assembly. Autorské riešenie predpokladá, že zo vstupných sekvencií existuje len jedno možné pospájanie, pričom sa použijú všetky vstupné sekvencie. Vstupné sekvencie sú uložené v zozname. Tento zoznam však bude rad, čo je dátová štruktúra FIFO (First In, First Out). Znamená to, že sú povolené 2 operácie: vloženie prvku na poslednú pozíciu a výber prvku na prvej pozícii. Úlohu riešili 2 riešitelia. Obaja ju riešili v Python-e, pričom jeden vyriešil celú úlohu správne. Druhému riešiteľovi fungoval program správne len v prípade, ak boli vstupné reťazce zoradené tak, aké má byť výsledné pospájanie. Maximálny počet bodov za úlohu bolo 6. V autorskom riešení má funkcia assembly 2 parametre. Prvým je zoznam vstupných sekvencií a druhým je počet písmen, na základe ktorých vieme spojiť 2 reťazce. V prvom kroku si vyberieme prvý reťazec zo zoznamu a uložíme ho do pomocnej premennej, ktorá bude reprezentovať výsledný reťazec. Na sleduje cyklus while (kým), ktorý bude bežať dovtedy, kým sa nepospájajú všetky reťazce, čiže vstupný zoznam nebude prázdny. V každej iterácii cyklu while vyberieme zo zoznamu prvú sekvenciu a zistíme, či ju nemôžeme pripojiť na pravú alebo ľavú stranu výsledného reťazca. Ak áno, pripojíme ju a ak nie, tak sekvenciu vložíme na koniec zoznamu. Takýmto spôsobom sa po určitom počte krokov pospájajú všetky vstupné sekvencie do výslednej sekvencie. Poznámka k riešeniam: Riešenie v Python-e je jednoduchšie a prehľadnejšie ako v Imagin-e. ;Imagine logo #Python Vaše zaujímavé riešenia a najčastejšie chyby
Ako už bolo spomínané v úvode, úlohu riešili 2 riešitelia. Obidve
riešenia boli riešené iným spôsobom ako autorské riešenie. Musím
vyzdvihnúť, že riešenia boli celkom prehľadné a hlavne dobre
okomentované.
|
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |