Consigli su un approccio di difficoltà intermedia per l HW?

James_F (4440 points)
6 12 34
asked Oct 22, 2021 in HW1 opzionale by James_F (4,440 points)
Scartando l'hint dei dict che mi sembra troppo avanzato e non considerando il for annidato nell'altro for in quanto troppo lento per passare i timeout dei test più grevi.
Suggerimenti o consigli su un modus operandi intermedio, di modo da vedere il problema da un'altra angolazione?  dato che sono bloccato da 3 giorni sull'ottimizzazione del codice con 2 cicli.

3 Answers

Wahya (7760 points)
1 2 15
answered Oct 22, 2021 by Wahya (7,760 points)
Piccolo hint che potrebbe semplificarti o complicarti ancora di più la vita: usa while annidato nel for e vedi se riesci a rendere più veloce il codice eliminando certe sottosequenze inutili.
Exyss (21080 points)
1 2 79
answered Oct 22, 2021 by Exyss (21,080 points)

Oltre al consiglio dato da @Wahya puoi provare a vedere se con qualche piccola ottimizzazione relativa direttamente a Python riesci a superare i test (ne dovresti trovare alcune online, ad esempio quando si usa una sequenza di valori che rimane costante nel tempo è consigliato usare le tuple al posto delle liste), anche se dovresti riuscire ad ottimizzarlo molto dato che una volta eseguito dal tester di q2a andrebbe più lento e potrebbe non passarli. In alternativa puoi fare come hanno consigliato in un altro thread riguardo al fare un controllo apposito nel caso in cui la stringa contenga tutti numeri uguali.

James_F (4440 points)
6 12 34
commented Oct 22, 2021 by James_F (4,440 points)
Penso non sia ammesso dal regolamento dell'HW usare una furbata del tipo controllare se tutti i numeri sono uguali.
In quel caso comunque avevo pensato di sortare la lista:
   se elemento iniziale uguale a elemento finale di lista sortata:
      tutti elementi uguali.
di conseguenza avrei fatto qualcosa.
Ma non sto proprio considerando quella strada in quanto troppo specifica per il test
Wahya (7760 points)
1 2 15
commented Oct 22, 2021 by Wahya (7,760 points)
Cosidera anche i test con gli zeri interni e gli zeri intorno alla coppia di uno, quelli in questo modo non li passeresti perché la lista sortata ti direbbe che il valore iniziale e finale non è lo stesso.
l.cirfeta (510 points)
0 0 5
answered Oct 24, 2021 by l.cirfeta (510 points)
Ciao! Anche io ho provato le tue stesse soluzioni. Il dizionario  l'ho scartato perché non performava con i test da tanti '0' e tanti '1', sicuramente gli ho utilizzati male.

L'unica cosa che ho fatto é ottimizzare il più possibile lo scorrimento della lista.
James_F (4440 points)
6 12 34
commented Oct 25, 2021 by James_F (4,440 points)
posso chiederti cosa passavi nel dizionario e, orientativamente come, ho ricevuto i dovuti suggerimenti e sono riuscito  a passare 15 test su 16 con i cicli; ma penso che imparare a fare le "pythonate" per dirla alla Spognardi, con i dict mi tornerà utile in futuro