Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created August 7, 2019 16:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/5de0f2bab8b52c694021eee41a0812f4 to your computer and use it in GitHub Desktop.
Save parzibyte/5de0f2bab8b52c694021eee41a0812f4 to your computer and use it in GitHub Desktop.
int esPalindromoRecursivo(char * cadena, int indiceInicio, int indiceFin) {
// Si llegamos hasta aquí es porque ya sólo queda un carácter,
// y por lo tanto no se puede comparar con otro
// Esto también comprueba si la cadena tiene uno o menos caracteres
if (indiceInicio >= indiceFin) return 1;
// Sólo para explicar la comparación que se hace
printf("Comparando %c con %c\n", cadena[indiceInicio], cadena[indiceFin]);
// Si no, entonces comparamos el primer y último carácter
if (cadena[indiceInicio] == cadena[indiceFin]) {
// En caso de que sí, vamos por buen camino. Ahora cortamos la cadena desde inicio + 1 hasta fin - 1
return esPalindromoRecursivo(cadena, indiceInicio + 1, indiceFin - 1);
} else {
// Si no eran iguales los carácteres al inicio y fin, entonces desde ahí se termina la recursión
// y se regresa 0
return 0;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment