HW4 obbligatorio - un piccolo aiutino

L
LeleAlpha (570 points)
2 4 6
asked Nov 13, 2019 in HW4 obbligatorio by LeleAlpha (570 points)
recategorized Nov 22, 2019 by andrea.sterbini
Ciao,

sto cercando di capire come affrontare l'hw4 obbligatorio ma proprio non riesco, e sono abbastanza convinto di stare facendo un errore molto banale.

La mia domanda è :

Devo trovare un modo per leggere le linee del file eliminando gli '/n' già in partenza, o devo basarmi su quelli per popolare adeguatamente un dizionario?

Ho tentato la prima strada per parecchio tempo, ma ora inizio con la seconda perchè proprio non ne sto venendo a capo.

Grazie.
424 views
closed with note: Chiudo le risposte perchè i colleghi mi hanno dato abbastanza spunti sui quali lavorare, ringrazio tutti.

4 Answers

Best answer
Christian (15220 points)
2 4 77
answered Nov 13, 2019 by Christian (15,220 points)
selected Nov 13, 2019 by LeleAlpha

Io personalmente ho letto il file facendo il replace dei \n\n con " " e degli \n con "", poi pensa a quale metodo delle stringhe potresti utilizzare per avere la lista delle singole parole (sapendo che sono separate da un singolo carattere)... devil

EDIT: ho modificato il messaggio per non esplicitare troppe cose angel

fc-dev (16450 points)
12 20 34
commented Nov 13, 2019 by fc-dev (16,450 points)
idea sicuramente funzionante, ma ti consiglio di leggere il file riga per riga, sono abbastanza sicuro che sia più veloce togliere l'ultimo carattere da ogni riga piuttosto che fare un replace su un intera mega-stringona
fc-dev (16450 points)
12 20 34
commented Nov 13, 2019 by fc-dev (16,450 points)
anche se in effetti con questo metodo ti risparmi gli append e le concatenazioni di stringhe...
L
LeleAlpha (570 points)
2 4 6
commented Nov 13, 2019 by LeleAlpha (570 points)
Per ora tento la strada di Christian, se poi mi accorgo che i tempi di esecuzione sono troppo lunghi, provo le altre strade.

Grazie.
fc-dev (16450 points)
12 20 34
answered Nov 13, 2019 by fc-dev (16,450 points)
edited Nov 13, 2019 by fc-dev

Devi trovare un modo di leggere il file ignorando gli \n in mezzo alle parole.
Per separare una parola dall'altra c'è un altro \n
quindi in pratica se ignori i \n quando ti trovi una linea vuota hai finito di leggere la parola corrente.

EDIT: se leggi il file riga per riga è particolarmente semplice renderti conto di quando hai una riga vuota

Tommaso Sgroi (12990 points)
6 11 91
answered Nov 13, 2019 by Tommaso Sgroi (12,990 points)

Il modo in cui ho risolto io semplicemente leggevo tutto il file, in modo da avere una stringa unica. A quel punto puoi vedere benissimo come procedere...

Non vorrei dire troppo ma se noti le parole in cui devi cercare sono sempre separate da '\n\n'... A questo punto se ti studi/ripassi i metodi delle stringhe puoi ricavare da te la soluzione che più ti aggrada.

J
Jan Rogala (7260 points)
3 4 37
answered Nov 13, 2019 by Jan Rogala (7,260 points)
Potresti scorrere tutte le righe del file, e le parole delle righe le metti in una variabile, non appena arrivi ad una riga che corrisponde a \n aggiungi la variabile alla struttura dati che vuoi utilizzare, e resetti la variabile. Cosi otterrai tutte le parole tranne l'ultima, poiche non vi sono \n dopo l'ultima parola. Sta a te vedere come fare per aggiungerla. Questo è un modo ma come vedi ce ne sono anche altri