algorytm.org

Implementacja w C/C++



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Algorytm GS' (Galila Seiferasa) - Implementacja w C/C++
Ocena użytkownikóww: *****  / 1
SłabyŚwietny
Nadesłany przez Tomasz Lubiński, 26 lipca 2005 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

Algorytm GS' C++.cpp:
//www.algorytm.org
//Algorytm GS' - wersja algorytmu Galila-Seiferasa dla pewnej klasy wzorcow
//(c)2002 Tomasz Lubinski

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <math.h>

#ifdef __cplusplus
  int max (int value1, int value2);
  int max(int value1, int value2)
  {return ( (value1 > value2) ? value1 : value2);}
#endif

void main(void)
{
char *wzorzec;
char *tekst;
int m,n,i,j;
printf("Podaj tekst\n");
scanf("%s", tekst);
printf("Podaj wzorzec (pamietaj, ze musi to byc wzorzec latwy)\n");
scanf("%s", wzorzec);
n=strlen(tekst);
m=strlen(wzorzec);
printf("Indeksy wystapien wzorca w tekscie\n");
i=0;
while (i<=n-m+1)
	{
	j=0;
	while ((j<m)&&(wzorzec[j]==tekst[i+j-1])) j++;
	if (j==m) printf("%d\n", i);
	i=i+max(1,ceil(j/3));
	}
getch();
}
//---------------------------------------------------------------------------
Dodaj komentarz