Dado un texto txt[0..n-1] y un patrón pat[0..m-1], escribe una función que imprima todas las apariciones de pat[] en txt[]. Puede suponer que n > m.
Ejemplos:
Input : txt[] = "geeks for geeks" pat[] = "geeks" Output : Pattern found at index 0 Pattern found at index 10 Input : txt[] = "aaaa" pat[] = "aa" Output : Pattern found at index 0 Pattern found at index 1 Pattern found at index 2
La idea es usar find() en la clase de string C++ .
CPP
// CPP program to print all occurrences of a pattern // in a text #include <bits/stdc++.h> using namespace std; void printOccurrences(string txt, string pat) { int found = txt.find(pat); while (found != string::npos) { cout << "Pattern found at index " << found << endl; found = txt.find(pat, found + 1); } } int main() { string txt = "aaaa", pat = "aa"; printOccurrences(txt, pat); return 0; }
Producción:
Pattern found at index 0 Pattern found at index 1 Pattern found at index 2
Publicación traducida automáticamente
Artículo escrito por rupayan_nitdgp y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA