Oppure

Loading
20/08/09 10:50
tommyprojects
Ho due vector di stringhe...

for (int x=0;x<insiemeA.size();x++) {
        cout << "\n\n";
        cout << insiemeA[x];
        cout << "\n\n";
        }
        
     for (int x=0;x<insiemeB.size();x++) {
        cout << "\n\n";
        cout << insiemeB[x];
        cout << "\n\n";
        }



ogni vector è formato da stringhe di questo tipo:
"1,2,3,4,9,21,34,78,79,82" ; "13,14,18,20,22,23,40,41,45,50" ecc...
e...
"34,78,22" ; "45,50,67,78,79,80"ecc...

ovvero il primo vector contiene elementi stringa di lunghezza fissa (nell'es.10)
il secondo vector contiene elementi stringa di lunghezza variabile (nell'es. 3 poi 6)

Io dovrei riuscire a:

confrontare ogni stringa del primo vector con ogni stringa del secondo ed evidenziare il numero di occorrenze uguali...

es:
"1,2,3,4,9,21,34,78,79,82";" VS "34,78,22" -> uguali: 2 : 34,78
"1,2,3,4,9,21,34,78,79,82";" VS "45,50,67,78,79,80" -> uguali: 2 : 78,79

Grazie infinite a chi mi può dare una mano per risolvere questo problemuccio... 8-)


Ultima modifica effettuata da tommyprojects 20/08/09 10:51
aaa
20/08/09 11:15
lorenzo
prova a documentarti sull'algoritmo LCS(longest common subsequence)
aaa
20/08/09 12:35
tommyprojects
Letto un pò qua e là... ma...
non credo si tratti di quello...

Nell'esempio che ho riportato in effetti i valori comuni erano casualmente contigui ma a me serve non di rintracciare la sottosequenza + lunga tra due stringhe (fatta dui caratteri contigui) bensì la quantita di elementi comuni costituenti le due stringhe indipendentemente dalla loro posizione all'interno delle stesse...

Credo possa risolvere in modo migliore facendo una cosa del genere (ma ignoro come si faccia..) :

scomposizione di ogni elemento stringa per ciascuno dei due array in un relativo sotto_array temporaneo e verifica tra tutti gli elementi di questi con incremento di una costante inizialmente inizializzata a 0 per ogni sotto_array esaminato indicante appunto la presenza di uno o più elementi in comune incrementandosi di 1 in caso di ogni verifica positiva...


Credi possa risolvere cosi'?

TNX

aaa
22/08/09 9:58
lorenzo
guarda che non sono così sicuro che la LCS sia da buttar via in questo problema.
se tu, nell'algoritmo LCS tieni conto dei separatori(virgole), puoi vedere comunque le due stringhe come vettori di valori contigui e per la questione dell'ordine, con qualche modifica si può gestire facilmente
aaa
23/08/09 14:38
tommyprojects
Postato originariamente da lorenzo:

guarda che non sono così sicuro che la LCS sia da buttar via in questo problema.
se tu, nell'algoritmo LCS tieni conto dei separatori(virgole), puoi vedere comunque le due stringhe come vettori di valori contigui e per la questione dell'ordine, con qualche modifica si può gestire facilmente


sicuramente hai ragione ma io non saprei da dove cominciare... :blush:
aaa