[C] Wyszukiwanie najdłuższego wspólnego podsłowa dla 2 słów.

Chungu
Użytkownik
Użytkownik
Posty: 121
Rejestracja: 21 paź 2016, o 20:57
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 42 razy

[C] Wyszukiwanie najdłuższego wspólnego podsłowa dla 2 słów.

Post autor: Chungu »

Witam.
Mam pewne zadanie. Jest ono mniej więcej takie:
1. Mam stworzyć 2 tablice dla których zostaną załadowane od użytkownika 2 wyrazy.
2. W tych 2 słowach mam znaleźć najdłuższe podsłowo, które jest wspólne dla obu łańcuchów...
Może dam przykład:
Dla danych wejściowych: abaab bbbaaa
poprawną odpowiedzią jest: 3
Najdłuższym wspólnym podsłowem powyższych słów jest słowo baa.

Całość ma zostać wykonana pewnie za pomocą pętli... ewentualnie robiliśmy na zajęciach jeszcze bibliotekę string.h... może coś tam jest z niej do wykorzystania... ale nie umiem tego zbytnio połączyć... Próbowałem coś skleić ale na marne... wymyśliłem, że:
1. Najpierw muszę znaleźć jakby pierwszy wspólny znak.
a)przeszukiwać potem obie tablice i zwiększać pewna zmienna pomocnicza tak długo aż będzie koniec jednego z wyrazów albo litery nie będą już takie same... nie wiem czy chociaż trochę dobrze myślę...

Oto mój, na 100 % upośledzony, kod: O ile cokolwiek jest z tego dobrze to w samym sercu jestem na 100 % pewny że brakuje czegoś (myślałem tam o instrukcjach sterujących break albo goto (?))

Kod: Zaznacz cały

int main(int argc, char *argv[]) {
	char tab[20],tab1[20];
	int i,j,k,m=0,l;
	puts("Podaj pierwszy wyraz:");
	gets(tab);
	puts("Podaj drugi wyraz:");
	gets(tab1);
	for(i=0;tab[i]!='\0';i++)
	{
		for(j=0;tab1[j]!='\0';j++)
		{
			if(tab[i]==tab1[j])
			{
				l=j;
				for(k=i;((tab[k]!='\0')||(tab[l]!='\0'));k++)
				{
					if(tab[k]==tab1[l])
					{
						l++;
						m++;
					}
				}
			}
		}
	}
	printf("%d",m);
	return 0;
}
Może mi ktoś pomóc? Opisać samą ideę działania programu (jakiś pseudokod(?) albo opis słowny) bądź nawet wkleić coś swojego? :(
Dziękuję za wszystkie sugestie i podpowiedzi...
mihile
Użytkownik
Użytkownik
Posty: 23
Rejestracja: 16 cze 2015, o 06:07
Płeć: Mężczyzna
Lokalizacja: Warszawa
Pomógł: 4 razy

[C] Wyszukiwanie najdłuższego wspólnego podsłowa dla 2 słów.

Post autor: mihile »

... ng_problem

Polecam przestudiować (posiłkując się google etc.), jest tez pseudokod.
ODPOWIEDZ