zapoctovka 1.2.2012

squo314 at 2012-02-01 15:46:53

mali sme vytvorit telefonny zoznam podporujuci nasledovne prikazy
a Jan Novak 775436985 // a=add
a Marek Tlusty 12345
a Jan Novak 074580 // Janov Novakov je viac, pridam dalsieho
a Jan Novak 074580 // pozor nato, aby mi nepridalo dvakrat tu istu osobu
d Jan Novak 074580 // d=delete. Cloveka jednoznacne identifikujem az ked viem aj jeho cislo
? No*k //?=query najde vsetky polozky, ktore viem namatchovat na tento "regular"
q // q = quit

teda vyhladavanie je podla prijmeni a dokaze vyhladavat s pouzitim hviezdicky. Hviezdicka sa vo vyraze moze vyskytnut maximalne raz.
Zastupuje lubovolny pocet lubovolnych znakov

Celkovo priklad bol lahky, ja som odchadzal po asi dva a pol hodinach a bol so medzi prvymi. Kod som spravil na 140 riadkov.

Riesenie:
pouzil som
std::map<string, vector<string> > telefonny_zoznam;
kde
telefonny_zoznam["Novak"] == vector{"Jan Novak 775436985", "Jan Novak 074580"}

konkretne cele riesenie mam na http://pastebin.com/HkKV2pNq