Eilučių paieškos algoritmas naudojamas ieškant konkretaus šablono(poeilutės) atvejų didesniame tekste(eilutė). Šis algoritmas atlieka lemiamą vaidmenį atliekant teksto apdorojimo, paieškos ir manipuliavimo užduotis.
Kaip tai veikia
- Pradėkite nuo teksto(eilutės) ir šablono(poeilutės), kurio norite ieškoti.
- Kartokite tekstą po vieną simbolį.
- Kiekvieną teksto simbolį palyginkite su pirmuoju rašto simboliu.
- Jei yra atitiktis, patikrinkite, ar tolesni simboliai taip pat atitinka šabloną.
- Jei modelis visiškai atitinka, užrašykite pradinę rungtynių padėtį.
- Tęskite šablono paiešką tekste.
Pavyzdys
Apsvarstykite tekstą: „ababcababcabcabc“ ir modelį: „abc“
- Pradėkite nuo 0 padėties. Palyginkite „a“ su pirmuoju simboliu „a“ šablone.
- Atitiktis rasta, pereikite prie kitų simbolių: „b“ su „b“ ir „a“ su „c“.
- Tęskite derinimą: „b“ su „a“, „a“ su „b“ ir „b“ su „c“.
- Rungtynės nepavyko 2 pozicijoje.
- Pradėkite iš naujo nuo 3 pozicijos. Palyginkite „a“ su pirmuoju simboliu „a“.
- Sėkmingos rungtynės: „a“ su „a“, „b“ su „b“ ir „c“ su „c“.
- 3 įrašo pozicija.
Raštas „abc“ yra 0, 6 ir 9 pozicijose.
Kodo pavyzdys C++
Šiame pavyzdyje stringSearch
funkcija naudojama šablono „abc“ atvejams rasti tekste „ababcababcabcabc“. Rezultatas bus vektorius, kuriame yra rungtynių pradinės pozicijos.