تُستخدم خوارزمية البحث عن سلسلة للعثور على تكرارات نمط معين(سلسلة فرعية) داخل نص أكبر(سلسلة). تلعب هذه الخوارزمية دورًا مهمًا في مهام معالجة النصوص والبحث والمعالجة.
كيف تعمل
- ابدأ بنص(سلسلة) ونمط(سلسلة فرعية) للبحث عنه.
- كرر خلال النص حرفًا واحدًا في كل مرة.
- لكل حرف في النص ، قارنه بالحرف الأول من النمط.
- إذا كان هناك تطابق ، فتحقق مما إذا كانت الأحرف التالية تتطابق أيضًا مع النمط.
- إذا كان النمط مطابقًا تمامًا ، فقم بتسجيل موضع البداية للمباراة.
- استمر في البحث عن النمط في النص.
مثال
النظر في نص: "ababcabcabcabc" ونمط: "abc"
- ابدأ من الموضع 0. قارن "أ" بالحرف الأول "أ" في النمط.
- تم العثور على تطابق ، انتقل إلى الأحرف التالية: "ب" مع "ب" ، و "أ" مع "ج".
- استمر في المطابقة: "b" مع "a" ، و "a" مع "b" ، و "b" مع "c".
- فشلت المباراة في الموضع 2.
- ابدأ مرة أخرى في الموضع 3. قارن "أ" بالحرف الأول "أ" في النمط.
- مطابقة ناجحة: "a" مع "a" و "b" مع "b" و "c" مع "c".
- سجل الموقف 3.
تم العثور على النمط "abc" في المواضع 0 و 6 و 9.
رمز المثال في C ++
في هذا المثال ، stringSearch
تُستخدم الوظيفة للعثور على تكرارات النمط "abc" داخل النص "ababcabcabcabc". ستكون النتيجة متجهًا يحتوي على مواضع البداية للمباريات.