Okno przesuwane po tekście

Wyszukiwanie wzorca w tekście metodą naiwną - Informatyka - liceum klasa 2 (Python)

**Wyszukiwanie wzorca** odpowiada na pytanie, w których miejscach tekstu występuje krótszy napis (wzorzec). Metoda **naiwna** przykłada wzorzec długości `m` po kolei do każdej pozycji `i` tekstu, od 0 do `n - m`, i porównuje fragment `text[i:i + m]` ze wzorcem. Specyfikacja: - dane: tekst `text` (długość `n`) i wzorzec `pattern` (długość `m`), - wynik: lista wszystkich pozycji `i`, od których zaczyna się wzorzec. Wystąpienia mogą na siebie **nachodzić**: w `"aaaa"` wzorzec `"aa"` zaczyna się na pozycjach 0, 1 i 2.

def find_all(text, pattern):
    m = len(pattern)
    positions = []
    for i in range(len(text) - m + 1):
        if text[i:i + m] == pattern:
            positions.append(i)
    return positions

print(find_all("abrakadabra", "abra"))
print(find_all("aaaa", "aa"))
print(find_all("kot", "pies"))

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Informatyka - liceum klasa 2·Zaloguj się, aby zapisać postęp na koncie.