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.

Svolgimento es 2

Shunk (6140 points)
8 26 86
in Es2 by (6.1k points)
recategorized by
Consigli su come impostare lo svolgimento dell'es2?
589 views

2 Answers

_andrea_ (45670 points)
13 42 297
by (45.7k points)
Trova un modo che ti faccia fare meno scorrimenti possibile
Xriuk (13590 points)
8 24 116
by (13.6k points)

Scorri riga per riga e:

  • Se è presente la stringa "<post>" ricavi il numero e lo salvi
  • Se la riga è vuota la salti
  • Altrimenti dividi la riga in parole (usa gli spazi come delimitatori) e conti le parole usando l'ID del post che ti sei salvato prima
a.capobianco1 (16770 points)
14 54 165
by (16.8k points)
Anche io ho fatto così ma non è troppo lento?.. Ci sono alternative?
Xriuk (13590 points)
8 24 116
by (13.6k points)
Secondo me no, perchè comunque dovresti leggerti tutto il file e comunque dovresti conteggiare le parole, alternative non me ne vengono in mente per ora...
M
Miriam (170 points)
0 1 3
by (170 points)

ciao scusa io ho fatto così ma nel terzo punto riesco ad accedere al corpo del post e salvare tutte le parole in una lista, ma non riesco a capire come trovare "I2", ossia  il numero di post in cui la parola compare. 

a.capobianco1 (16770 points)
14 54 165
by (16.8k points)
Mmm allora forse il problema è che nella determinazione delle parole in riga.. Immagino si debba necessariamente fare lo split con separatore spazio vuoto e poi iterare la lista ottenuto... Ma anche così è lento... Si può fare altrimenti?
a.capobianco1 (16770 points)
14 54 165
by (16.8k points)
X I2 devi aggiungere 1 ogni volta che trovi la parola in un post ma solo alla prima occorrenze della stessa nel singolo post. Dipende da come memorizzi i dati
Xriuk (13590 points)
8 24 116
by (13.6k points)

@Miriam dipende da come ti salvi le occorrenze delle parole, io me le sono salvate per ogni parola e per ogni post in un doppio dizionario: diz[parola][post] = numero, quindi I2 diventa il numero di elementi in ogni diz[parola]

@a.capobianco1 il problema sono gli ultimi file dove ci sono più di 300.000 righe! Bisogna trovare un modo per ottimizzare la ricerca, non saprei se qualche ordinamento possa aiutare... a casa vorrei provare qualcosa