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

Do you need help?

Ridurre tempo esecuzione ultimi due test HW4

g
gullisa (1170 points)
9 26 32
in HW4 obbligatorio by (1.2k points)
edited by
Ciao a tutti,

consigli per incrementare la velocità di esecuzione negli ultimi due test (il mio codice sfora minimamente a causa delle sottofunzioni che mappano le vocali accentate a quelle non accentate e secondariamente nella sottofunzione che crea gli ES)? Nota: ho disabilitato il timeout per vedere la durata effettiva.

Grazie
371 views

3 Answers

AdSum (16290 points)
9 20 134
by (16.3k points)
Non conosciamo ne il tuo codice ne la tua logica, quindi è difficile darti un consiglio.
Comunque, la miglior maniera di velocizzare il codice è di evitare il più possibili i cicli, preferendo singole operazioni quando possibile, e ridurre il più possibile le operazioni, evitando quelle superflue e inutili ripeizioni, e quindi lasciando solo le necessarie.
g
gullisa (1170 points)
9 26 32
by (1.2k points)
Grazie, hai ragione. Allora: la logica è che le vocali vengono mappate tramite una tabella di traduzione su tutto il testo (tramite un metodo delle stringhe...) e che poi gli ES vengono creati seguendo la sequenza suggerita nel testo del problema verificando che un carattere faccia o meno parte dell'insieme delle vocali (in questa funzione generatrice degli ES uso una condizione di verifica all'interno di un ciclo).
AdSum (16290 points)
9 20 134
by (16.3k points)
Non vedo falle nel tuo ragionamento, probabilmente puoi ottimizzare altro. Calcola comunque una cosa, il tempo sulla tua macchina è differente rispetto a quella della VM.
andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
Nota, il timeout quando ferma un test impiega pochi millisecondi a stopparlo, per cui sembra di aver sforato di poco, ma il tempo vero può essere maggiore.
giordano_sannino (13650 points)
7 16 81
by (13.7k points)
sicuro che il tuo tempo reale sia quello?
g
gullisa (1170 points)
9 26 32
by (1.2k points)
sì, ho disabilitato il timeout