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

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

Problema quando itero la matrice?

c
chiarag (10160 points)
4 5 13
in HW8 obbligatorio by (10.2k points)
Buonasera, sto riscontrando dei problemi mentre itero nella matrice. Ho una lista delle parole con la stessa iniziale, e quando la trovo faccio un ciclo che per ogni parola cerca se esiste il percorso per essa da quelle coordinate, e se c'è la elimina dalla lista. Ora, una volta eliminata la parola, io vorrei che continuasse a vedere se ce ne sono altre possibili da quelle coordinate (ad esempio per CAMMELLO e CANGURO nell'esempio2), ma non so per quale motivo, non mi va avanti nel ciclo e itera la griglia, senza controllare nella lista le parole successive a quella eliminata. Non itero la lista con gli indici quindi non capisco proprio perché non termini il ciclo per tutte le parole di essa.

Se qualcuno sapesse come aiutarmi mi darebbe una mano enorme! :)
451 views
closed

2 Answers

Best answer
Lorenzo Cristini (10830 points)
0 0 27
by (10.8k points)
selected by
Non puoi provare ad iterare sulla copia della lista delle possibili parole? Io avevo un problema simile e l'ho sistemato così.
c
chiarag (10160 points)
4 5 13
by (10.2k points)
Grazie mille, ho risolto in questo modo.
E
Edward (25950 points)
3 4 172
by (26.0k points)

È normale il comportamento che hai descritto, se elimini l'elemento mentre iteri sulla lista.
Quello che dovresti fare è eliminare gli elementi trovati, ma dopo che hai finito di iterare nella lista.

 e se c'è la elimina dalla lista.

Qui è il problema, devi farlo dopo che il ciclo che itera sulla lista è finito.