Given a text txt[0..n-1] and a pattern pat[0..m-1], write a function search(char pat[], char txt[]) that prints all occurrences of pat[] in txt[]. You may assume that n > m.
Examples:
Input: txt[] = "THIS IS A TEST TEXT" pat[] = "TEST" Output: Pattern found at index 10 Input: txt[] = "AABAACAADAABAABA" pat[] = "AABA" Output: Pattern found at index 0 Pattern found at index 9 Pattern found at index 12
Pattern searching is an important problem in computer science. When we do search for a string in notepad/word file or browser or database, pattern searching algorithms are used to show the search results.
Recommended: Please solve it on “PRACTICE ” first, before moving on to the solution.
PHP
<?php // PHP program for Naive Pattern // Searching algorithm function search( $pat , $txt ) { $M = strlen ( $pat ); $N = strlen ( $txt ); // A loop to slide pat[] // one by one for ( $i = 0; $i <= $N - $M ; $i ++) { // For current index i, // check for pattern match for ( $j = 0; $j < $M ; $j ++) if ( $txt [ $i + $j ] != $pat [ $j ]) break ; // if pat[0...M-1] = // txt[i, i+1, ...i+M-1] if ( $j == $M ) echo "Pattern found at index " , $i . "\n" ; } } // Driver Code $txt = "AABAACAADAABAAABAA" ; $pat = "AABA" ; search( $pat , $txt ); // This code is contributed by Sam007 ?> |
Pattern found at index 0 Pattern found at index 9 Pattern found at index 13
Time Complexity: O(M * (N – M + 1)), where M and N represents the length of the given strings.
Auxiliary Space: O(1), no extra space is required, so it is a constant.
Please refer complete article on Naive algorithm for Pattern Searching for more details!
<!–
–>
Please Login to comment…