Para determinar o comprobar si una cadena es un palíndromo(capicúa) utilizando la recursividad, debemos tener en cuenta que un palíndromo está compuesta por una cadena, que no es más que la colección de caracteres. Una cadena se dice que es palíndromo si el reverso de la palabra se lee igual a la palabra original, es decir se lee igual hacia adelante que hacia atrás, por ejemplo, "ABA" es un palíndromo, ya la inversa de "ABA" es también "ABA", pero "ABC" no es un palíndromo, ya que la inversa de "ABC" es "CBA", que no es igual. La recursividad significa resolver un problema escribiendo una función que se llama a sí mismo. Con el fin de comprobar si la cadena es palíndroma, necesitamos una función que puede invertir la cadena. Una vez que tenga original y Invertida cadena, todo lo que tiene que hacer es comprobar si son iguales entre sí o no. Si son iguales, entonces la secuencia es palíndromo o no.
A continuación el algoritmo del palíndromo realizado de forma recursiva en java:
boolean es_Palindromo(String s){
if(s.length() <= 1){
return true;
}else{
if(s.charAt(0) == s.charAt(s.length() - 1)){
return es_Palindromo(s.substring(1,s.length() - 1 ) );
}else{
return false;
}
}
}