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?
Figyelt kérdés
Úgy csináltam,hogy a listán egy for ciklussal végigmenve számjegyenként és helyiértékenként számoltattam össze,úgy hogy pl. 1es a 1es helyiértéken akkor számolja bele,ha a szám maradékosan osztva 1el 1-a maradéka. 1 es számjegyet 10es helyiértéken úgy számoltam,hogy a számot százzal osztva a maradék legalább tíz,de kisebb mint 20. És így tovább. A feladatban megadott tesztértékekkel leteszteltem,jó értékeket adott. Azonban a kód elég hosszú lett. Van-e gyorsabb mód rá,vagy nincs?Arra akarok kilyukadni,hogy lehet-e szebb kóddal?2021. szept. 23. 23:04
21/27 A kérdező kommentje:
5-ös:2est akartam írni. Elírtam
2021. szept. 24. 07:13
22/27 A kérdező kommentje:
C#on kéne.
2021. szept. 24. 07:15
23/27 Pelenkásfiú válasza:
A prog.hu-n leírták c#-ban.
Ott van a #12-es hsz.-ban.
24/27 Pelenkásfiú válasza:
#19 Köszi, a defaultdict-et megnézem. 3 napja kezdtem a Pythont. :)
Egyébként eredetileg így akartam, de este valamit elírhattam és nem futott le:
count = {str(x): 0 for x in range(0, 10)}
Így nem kell az ord() a számláláskor, kiíráskor meg úgy is mindegy, hogy stringként vagy számként hivatkozunk egy számjegyre.
A sebességteszt is érdekes. Thx!
25/27 zozo256 válasza:
from collections import *
import random
Counter(str([random.randint(0, 100) for _ in range(10)]).strip("'[]").replace(', ', ''))
26/27 anonim válasza:
Kompakt megoldás, és jó gyors.
27/27 anonim válasza:
10.000.000 elemű tömb átpörgetése, és darab szerint kulcs-érték párban kirendezése 1,61 másodperc alatt szerintem nem rossz idő.
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
A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!