Decode
Podaci kroz računarske mreže uglavnom putuju kao sekvence bita. Da bi prijemnik mogao saznati kako da čita primljenu poruku mora postojati informacija o načinu zapisa znakova. Jedan način je da odredimo jedan broj bita, K, i da svakom znaku dodjelimo broj u opsegu od 0 do 2^{K - 1}. Prednost ovog metoda je što tada prijemnik zna da je svaki znak predstavljen sa tačno K bita i on može lako znati o kojim se znakovima radi. Ali ovaj način ima manu da i mali brojevi zauzimaju K bita i time proces prenosa traje duže nego što bi mogao da traje. Zato se koriste kompresije.
Jedan od načina kompresije je da znakovi mogu imati različitu dužinu zapisa. Znakovima koji se ponavljaju češće od ostalih dodijelimo najmanje brojeve (sa najmanjim brojem bita) a onim rjeđim veće brojeve. Da bi prijemnik znao koliko bita određuje koji znak potrebno je da svaki znak ima zapis koji NIJE prefiks zapisa nekog drugog znaka (u suprotnom ne bi znao da li treba stati i ispisati znak ili nastaviti čitati bite i ispisati neki drugi znak).
Vaš zadatak je da napišete dekoder ovako kompresovane poruke ako vam je poznata tabela znakova.
5
A 0000
! 0001
c 001
D 01
e 1
00000001001100101Output
A!cecD 5
a 110
b 111
c 00
. 01
e 10
11010011110011010Output
ae.bcae Submit solution
Coming laterThe grading service will be connected in a later migration step. You can inspect the task and your previous results now.