human
Construir un programa para 'Coincidencia de cadenas' usando el Algoritmo Greedy.Cadena A:ababcab
Cadena B:cab
gpt
//programa para la coincidencia de cadenas usando el algoritmo greedy 

#include<stdio.h>
#include<stdbool.h>

// Función para encontrar coincidencia entre la cadena dada y el patrón 
bool coincidenciaCadenas(char cadena[], char patron[]) 
{ 
	//calcular la longitud de la cadena dada 
	int n = strlen(cadena);  

	//calcular la longitud del patrón dado 
	int m = strlen(patron);  

	// índices de la cadena y el patrón 
	int i = 0, j = 0;  

	// Bucle greedy para la coincidencia 
	while(i < n && j < m) { 
		if(cadena[i] == patron[j]) { 
			i++; 
			j++; 
		} 
		// Retroceder una posición en la cadena 
		else { 
			i = i - j + 1; 
			j = 0; 
		}	 
	} 

	// Comprobar si se encuentra el patrón o no 
	if(j == m) 
		return true; 
	
	return false; 
} 

// Código del controlador 
int main() 
{ 
	char cadena[] = "ababcab"; 
	char patron[] = "cab"; 
	
	bool flag = coincidenciaCadenas(cadena, patron); 
	
	if (flag) 
		printf("El patrón coincide"); 
	else
		printf("El patrón no coincide"); 
		
	return 0; 
}