Sprawdź się
W programie zdefiniowano zmienną slowo
. Twoim zadaniem jest zbudowanie dla niej tablicy częściowych dopasowań metodą MP. W jednej linii wypisz tablicę dopasowań dla zmiennej, oddzielając jej elementy przecinkiem oraz spacją.
Przetestuj program dla zmiennej slowo = "tata"
.
Przypomnienie z poprzednich e‑materiałów:
W przeciwieństwie do metody KMP, metoda MP zakłada, że w momencie, gdy element występujący po znalezionym prefikso‑sufiksie będzie taki sam jak występujący po sufiksie, zamiast wpisywać wartość z tablicy na pozycji równej szerokości prefikso‑sufiksu, będziemy wpisywać do tablicy szerokość prefikso‑sufiksu.
Specyfikacja problemu:
Dane:
slowo
– zmienna typu String
Wynik:
Program tworzy tablicę częściowych dopasowań metodą MP.
Przykładowe wyjście (slowo = "mama"
):
W programie zdefiniowano tablicę zawierającą n słów. Twoim zadaniem jest zbudowanie dla nich tablic częściowych dopasowań metodą KMP. Dla każdego słowa wypisz w osobnej linii jego tablicę dopasowań, oddzielając jej elementy przecinkiem oraz spacją. Przetestuj działanie programu dla następującej tablicy:
Specyfikacja problemu:
Dane:
slowa
– tablica składająca się zn
elementów (łańcuchów znaków)n
– liczba naturalna dodatnia
Wynik:
Program tworzy tablicę częściowych dopasowań metodą KMP.
Przykładowe wyjście (slowa = {"cogito", "ergo", "sum", "carpe", "diem"
):
Do programu z ćwiczenia 2 dodano ciąg znaków: tekst
. Korzystając z uprzednio utworzonych tablic częściowych dopasowań, sprawdź, które elementy tablicy slowa
występują w łańcuchu znaków tekst
. Dla każdego słowa w osobnej linii wypisz TAK
, jeśli pojawia się w tekście lub NIE
– w przeciwnym wypadku.
Specyfikacja problemu:
Dane:
slowa
– tablica składająca się zn
elementów (łańcuchów znaków)n
– liczba naturalna dodatniatekst
– ciąg znaków o długości mm
– liczba naturalna dodatnia
Wynik:
Program dla każdego słowa w osobnej linii wypisuje komunikat TAK lub NIE (w zależności od tego, czy pojawia się w tekście).