स्ट्रिङ खोज एल्गोरिथ्म ठूलो पाठ(स्ट्रिङ) भित्र विशिष्ट ढाँचा(सबस्ट्रिङ) को घटनाहरू फेला पार्न प्रयोग गरिन्छ। यो एल्गोरिथ्मले पाठ प्रशोधन, खोजी, र हेरफेर कार्यहरूमा महत्त्वपूर्ण भूमिका खेल्छ।
यो कसरी काम गर्दछ
- खोजी गर्नको लागि पाठ(स्ट्रिङ) र ढाँचा(सबस्ट्रिङ) सँग सुरु गर्नुहोस्।
- पाठ मार्फत एक पटकमा एक वर्ण दोहोर्याउनुहोस्।
- पाठमा प्रत्येक क्यारेक्टरको लागि, यसलाई ढाँचाको पहिलो क्यारेक्टरसँग तुलना गर्नुहोस्।
- यदि त्यहाँ मिल्दोजुल्दो छ भने, त्यसपछिका क्यारेक्टरहरू पनि ढाँचासँग मेल खान्छ भने जाँच गर्नुहोस्।
- यदि ढाँचा पूर्ण रूपमा मेल खान्छ भने, म्याचको सुरूवात स्थिति रेकर्ड गर्नुहोस्।
- पाठमा ढाँचा खोज्न जारी राख्नुहोस्।
उदाहरण
एउटा पाठलाई विचार गर्नुहोस्: "ababcababcabcabc" र एउटा ढाँचा: "abc"
- स्थिति ० मा सुरु गर्नुहोस्। ढाँचामा पहिलो वर्ण "a" सँग "a" लाई तुलना गर्नुहोस्।
- मिल्दो भेटियो, अर्को वर्णहरूमा जानुहोस्: "b" सँग "b" र "c" सँग "a"।
- मिल्दो जारी राख्नुहोस्: "b" सँग "a", "a"b" सँग, र "b" सँग "c"।
- स्थिति २ मा खेल असफल भयो।
- स्थिति 3 मा फेरि सुरु गर्नुहोस्। ढाँचामा पहिलो वर्ण "a" सँग "a" लाई तुलना गर्नुहोस्।
- सफल मिलान: "a" सँग "a", "b" सँग "b", र "c" सँग "c"।
- रेकर्ड स्थिति 3।
ढाँचा "abc" स्थिति 0, 6, र 9 मा पाइन्छ।
C++ मा उदाहरण कोड
यस उदाहरणमा, stringSearch
"ababcababcabcabc" पाठ भित्र ढाँचा "abc" को घटनाहरू फेला पार्न प्रकार्य प्रयोग गरिन्छ। नतिजा एक भेक्टर हुनेछ जसमा खेलहरूको सुरुवात स्थितिहरू छन्।