Oppure

Loading
27/11/09 21:53
HeDo
Postato originariamente da Lawliet:

Perchè dovrei sparare vaccate? Ti ho detto che secondo il tuo codice non funziona se la sottosequenza ha un solo elemento, e con l'aggiunta di quella condizione come ho scritto dovrebbe funzionare anche nel caso che non ti funziona.
Mi sbaglio!?


il mio codice funziona, la tua riga è inutile e se sostieni il contrario portami ad esempio un input che porta un output sbagliato, punto.
aaa
27/11/09 21:58
Lawliet
Ma perchè non ragioni usando come dire con la logica?
Prova a mettere allora 1 2 3 4 e sottosequenza 1. Ti dirà che non è contenuta, sbaglio anche adesso?
Ultima modifica effettuata da Lawliet 27/11/09 21:58
aaa
27/11/09 22:13
HeDo
Postato originariamente da Lawliet:

Ma perchè non ragioni usando come dire con la logica?
Prova a mettere allora 1 2 3 4 e sottosequenza 1. Ti dirà che non è contenuta, sbaglio anche adesso?


bastava un esempio, cmq ho invertito due righe, basta mettere il check della fine seconda riga prima del confronto dell'elemento successivo e aggiungere una cosina al return


bool contenuta(int A[], int B[], int dim1, int dim2) {

	// La più lunga non può essere contenuta nella più corta!
	if (dim2 > dim1) return false;

	// Se stiamo comparando le due sequenze
	bool bComparing = false;

	int h = 0;

	// Scorriamo tutti gli elementi della sequenza principare
	for(int n = 0; n < dim1; n++) {
		
		// Se le stiamo comparando
		if (bComparing) {
			
			// Andiamo avanti nella seconda sequenza
			h++;

			// Se siamo arrivati in fondo alla seconda sequenza
			// e non abbiamo trovato nessun elemento diverso
			// vuol dire che sono uguali
			if (h == dim2) return true;

			// Se gli elementi sono diversi la sequenza è diversa
			if (A[n] != B[h]) return false;

		
		} else
			// Iniziamo il confronto al primo elemento uguale
			bComparing = (A[n] == B[0]);		


	}


	// Ritorna vero se mentre stavamo comparando la stringa siamo arrivati
	// alla fine della seconda stringa, il che ci dice che erano uguali.
	return bComparing && h == dim2;

}

aaa
27/11/09 22:32
Lawliet
non avevo capito prima che volevi un esempio pratico ^^'
Ora dovrebbe essere giusto ;)
aaa