Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Ottimizzazione es3

T
TCM (980 points)
11 24 30
in Es3 by (980 points)
closed by
Il programma che ho fatto per il terzo esercizio mi passa 4 test di cui il 4 dopo parecchio tempo.

Uso un while parecchi for e if  e un dizionario. Sostanzialmente faccio un controllo lettera per lettera ma ovviamente è troppo lungo. Ho pensato di farlo ogni tot lettere ma nn saprei come ne ho altre idee...
2.1k views
closed with the note: answered

4 Answers

G
Gdn98 (11600 points)
5 35 101
by (11.6k points)
Potresti provare a fare un controllo impostando la ricerca in base alla lunghezza della parola usando una slice sul testo
VincenzoImperati (6290 points)
6 15 58
by (6.3k points)
Puoi per esempio sfruttare il fatto che nessuna parola della lista è prefisso di un'altra cosi puoi fare la ricerca invece che per ogni singola lettera, fai una ricerca per un pezzo che sia lungo quanto la lunghezza della parola più corta della lista, così da risparmiare molti cicli
A
Anon2 (810 points)
1 6 12
by (810 points)
Ti consiglio di trasformare la lista di parole in un insieme, cercare in un insieme è molto più veloce che cercare in una lista
Shunk (6140 points)
8 26 86
by (6.1k points)
Piuttosto che confrontare lettera per lettera potresti confrontare la lunghezza di ogni parola della lista con quelle del testo, già risparmi qualcosa