Ha van egy lista,tele számokkal,amik 1től 10000ig bármekkorák lehetnek,akkor mi a "legszebb" megoldás arra,hogy összeszámláljuk,hogy egy adott számjegyből mennyi darab van?
Egyszerű megoldás:
Egy tömbön kell végigmenned: minden egyes elemről szeretnéd tudni, hogy az hányszor szerepel a halmazban. Végigiterálsz, és ha a feltételednek megfelelő a tömb iterátoradik eleme, akkor pörgetsz egyet a számlálódon, ami default 0. A tömbbön mindenképpen végig kell menned legalább egyszer, hiszen nem tudhatod, hogy az utolsó, vagy akár a középső elem mi lehet.
Nem túl "light-weight" megoldás:
Szükséged van egy hashmap félére, vagy egy objectre aminek a kulcsa a tömb iterátoradik eleme, az értéke pedig az elem előfordulási száma, default 0. Vigyázni kell rá, hogy ne legyen duplikált kulcsod. Ez több erőforrást igényel, viszont átalakítod az inputodat, kiszeded a duplikációt, ráadásul minden elemről tudni fogod azt, hogy hányszor szerepel.
Csinálhatod C#-ban, pythonban, js-ben, javaban, a lényeg ugyan az: próbáld meg úgy megcsinálni, hogy a lehető legkevesebb erőforrást használd fel, aztán meg próbáld meg a hashmap megoldást, mert ott viszont rend születik az adathalmazban :)
Biztos van erre valami csoda matek megoldás is, de ahhoz hülye vagyok, majd azt mást leírja :)
#6 De ő azt írta, hogy számjegyeket kell megszámolni, nem azt, hogy mondjuk a 123 hányszor van a listában.
De lehet, nekem van késő...
És milyen programnyelvről van szó? Javascriptben kb. ennyi:
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!