Programación de kilómetros
#Contiene? ltstdio.h gt
#¿Contiene? ltstdlib.h gt
#¿Incluir? ltstring.h gt
int? is_sub_str(char*?s1,?char*?s2)
{
int? len1? =?strlen(s 1);
int? len2? =?strlen(S2);
¿Si? (len1? gt? len2)
{
¿Regresión? -1;
}
int? ¿I? =?0,?j? =?0;? //?¿I? ¿Qué pasa? t1? ¿Qué posición? ¿Qué pasa? s2? Ubicación
¿Cuándo? (j? lt? len2?-?len1? ?1)
{
¿Cuándo? (I? lt? len1? amp amp? s1[i]? ==?s2[j])
I
j; /p>
}
¿Y si? (¿Yo?==?len1)
¿Volver? j? -?len 1;
}
Otros
{
j? =?j? -?¿I? ?1;? //? Juzga el siguiente personaje del personaje hasta la última vez.
¿Yo? =?0;
}
}
¿Volver? -1;
}
int? main(int?argc,?char**?argv)
{
int? r? =?is_sub_str("23","234567");
printf? (" d\n ", r);
r? =?is_sub_str("23","ABC 123 aC");
printf? (" d\n ", r);
r? =?is_sub_str("223","22 ABC 223");
printf? (" d\n ", r);
r? =?is_sub_str("1234 ","23");
printf? (" d\n ", r);
¿Volver? 0;
}Ejecutar:
Esta es una ley violenta, pero por experiencia, generalmente no es muy eficiente. ¿En cuanto a ser más eficiente? El algoritmo KMP es difícil de entender. Puede encontrar información para comprenderlo usted mismo.