Ocena użytkownikóww: ***** / 1
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.
AlgorytmGS.java:
/**
* www.algorytm.org
* Algorytm GS' - wersja algorytmu Galila-Seiferasa dla pewnej klasy wzorcow
* (c)2002 Tomasz Lubinski
*
*/
public class AlgorytmGS {
public static void main(String[] args) {
String wzorzec;
String tekst;
int m,n,i,j;
System.out.println("Podaj tekst");
tekst = Console.readString("?");
System.out.println("Podaj wzorzec (pamietaj, ze musi to byc wzorzec latwy)");
wzorzec = Console.readString("?");
n = tekst.length();
m = wzorzec.length();
System.out.println("Indeksy wystapien wzorca w tekscie");
i=0;
while (i<=n-m+1)
{
j=0;
while ((j<m)&&(wzorzec.charAt(j)==tekst.charAt(i+j-1))) j++;
if (j==m) System.out.println(i);
i=(int) (i+Math.max(1,Math.ceil(j/3)));
}
}
}