Új hozzászólás Aktív témák

  • axioma

    veterán

    válasz kezdosql #2274 üzenetére

    Nekem ezt mondd el, hogy miert?
    "A sorbarendezest ugy kell vegezni, hogy a legnagyobb elemet tartalmazonal megkeresni, melyek a reszlistai, es azokat sorrendbe rendezni, majd megnezni, hany fuggetlen lista van, es azoknal is reszlistakat keresni."

    Azt nem ertem, hogy most az a feladat, hogy fuggetlen listakat kell keresni, vagy az, hogy egy sorbarendezest megvalositani? Mi a vegso cel? A sorbarendezes mar a te megoldasod resze?

    Amugy ha definialod ezt a sorbarendezest, akkor abban lehet segiteni. Elso tipp, amit versenyeken szoktam: uj lista kepzese ugy, hogy annak minden eleme egy tuple, amiben az elso, masodik, ... elemek a szempontok fontossagi sorrendben, a vegere meg vagy betolod magat az elemet, vagy csak egy indexet. Ezt a listat rendezed, majd kiolvasod az elemeket (instantice vagy az indexnel fogva).

    Esetedben ha mar betukbol allo stringjeid vannak strings=[s1,...,s15] , akkor kepezni kell a toSort=[(len(strings[i]),strings[i]) for i in xrange(15)] listat, meghivod ra a .sort() -ot es a hossz szerinti majd azon belul lexikografikus rendezest megkapod a sortedStrings=[toSort[i][1] for i in xrange(15)] modszerrel. [A 15 most direkt hogy konnyebb legyen kovetni, de nyilvan nem magic number-ezunk.]

    Ja az elejen feltettem, hogy ha mar betukkel helyettesitettel, akkor a lista az egy karakterlista, amit nevezhetunk (hasznalhatunk) akar stringnek is... de egyebkent kb. hasonloan megoldhato ha a string helyett lista van, csak akkor mar nem tennem bele a tuple-be, hanem az indexszel visszakeresest hasznalnam (tehat a tuple elemei (len(listOfLists[i]), i) , mig a kiolvasasnal a futo elem listOfLists[toSort[i][1]] ).

    Amugy valoszinuleg, hacsak nem nagyon titkos a sztori, az eredeti problema lenne a legkonnyebben megvalaszolhato. A fuggetlen halmazok meg az altalad emlitett kapcsolatok mar a grafelmelet iranyaba visznek el (ami neked nem feltetlen baj, mert kesz algok vannak csak megfelelo formara kell alakitani es meghivni).

    [ Szerkesztve ]

Új hozzászólás Aktív témák