Dado un texto txt[0..n-1] y un patrón pat[0..m-1] , escriba una función search(char pat[], char txt[]) que imprima todas las apariciones de pat[] en txt [] . Puede suponer que n > m .
Ejemplos:
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
C
// C program for Naive Pattern Searching algorithm #include <stdio.h> #include <string.h> void search(char* pat, char* txt) { int M = strlen(pat); int N = strlen(txt); /* A loop to slide pat[] one by one */ for (int i = 0; i <= N - M; i++) { int j; /* For current index i, check for pattern match */ for (j = 0; j < M; j++) if (txt[i + j] != pat[j]) break; if (j == M) // if pat[0...M-1] = txt[i, i+1, ...i+M-1] printf("Pattern found at index %d \n", i); } } /* Driver program to test above function */ int main() { char txt[] = "AABAACAADAABAAABAA"; char pat[] = "AABA"; search(pat, txt); return 0; }
C++
// C++ program for Naive Pattern // Searching algorithm #include <bits/stdc++.h> using namespace std; void search(char* pat, char* txt) { int M = strlen(pat); int N = strlen(txt); /* A loop to slide pat[] one by one */ for (int i = 0; i <= N - M; i++) { int j; /* For current index i, check for pattern match */ for (j = 0; j < M; j++) if (txt[i + j] != pat[j]) break; if (j == M) // if pat[0...M-1] = txt[i, i+1, ...i+M-1] cout << "Pattern found at index " << i << endl; } } // Driver Code int main() { char txt[] = "AABAACAADAABAAABAA"; char pat[] = "AABA"; search(pat, txt); return 0; } // This code is contributed // by Akanksha Rai
Java
// Java program for Naive Pattern Searching public class NaiveSearch { static void search(String pat,String txt){ int l1=pat.length(); int l2=txt.length(); int i=0,j=l2-1; for(i=0,j=l2-1;j<l1;){ if(txt.equals(pat.substring(i,j+1))){ System.out.println("Pattern found at index "+i); } i++; j++; } } public static void main(String args[]){ String pat="AABAACAADAABAAABAA"; String txt="AABA"; search(pat,txt); } } // This code is contributed by D. Vishnu Rahul Varma
Python3
# Python3 program for Naive Pattern # Searching algorithm def search(pat, txt): M = len(pat) N = len(txt) # A loop to slide pat[] one by one */ for i in range(N - M + 1): j = 0 # For current index i, check # for pattern match */ while(j < M): if (txt[i + j] != pat[j]): break j += 1 if (j == M): print("Pattern found at index ", i) # Driver Code if __name__ == '__main__': txt = "AABAACAADAABAAABAA" pat = "AABA" search(pat, txt) # This code is contributed # by PrinciRaj1992
C#
// C# program for Naive Pattern Searching using System; class GFG { public static void search(String txt, String pat) { int M = pat.Length; int N = txt.Length; /* A loop to slide pat one by one */ for (int i = 0; i <= N - M; i++) { int j; /* 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) Console.WriteLine("Pattern found at index " + i); } } // Driver code public static void Main() { String txt = "AABAACAADAABAAABAA"; String pat = "AABA"; search(txt, pat); } } // This code is Contributed by Sam007
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 ?>
Javascript
<script> // Javascript program for Naive Pattern Searching function search(txt, pat) { let M = pat.length; let N = txt.length; /* A loop to slide pat one by one */ for (let i = 0; i <= N - M; i++) { let j; /* 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) document.write("Pattern found at index " + i + "</br>"); } } let txt = "AABAACAADAABAAABAA"; let pat = "AABA"; search(txt, pat); </script>
C
txt[] = "AABCCAADDEE"; pat[] = "FAA";
C
txt[] = "AAAAAAAAAAAAAAAAAA"; pat[] = "AAAAA";
C
txt[] = "AAAAAAAAAAAAAAAAAB"; pat[] = "AAAAB";
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA