Nuestro equipo de especialistas pasados muchos días de trabajo y de recopilar de datos, hemos dado con los datos necesarios, nuestro deseo es que todo este artículo sea de utilidad en tu trabajo.
Solución:
En cambio, explicaré el algoritmo recursivo en sí. Tome el ejemplo “entrada” que debería producir “tupni”. Puedes invertir el string recursivamente por
- Si el string está vacío o es un solo carácter, devuélvalo sin cambios.
- De lo contrario,
- Elimina el primer carácter.
- Invertir el resto string.
- Agregue el primer carácter de arriba al invertido string.
- Devolver el nuevo string.
prueba este
string reverse(string &s)
if( s.length() == 0 ) // end condtion to stop recursion
return "";
string last(1,s[s.length()-1]); // create string with last character
string reversed = reverse(s.substr(0,s.length()-1));
return last+reversed; // Make he last character first
Una función recursiva debe tener las siguientes propiedades
- Debe volver a llamarse a sí mismo
- Debe tener una condición cuando finaliza la recursión. De lo contrario, tiene una función que provocará un desbordamiento de pila.
Esta función recursiva básicamente crea un string del último carácter y luego volver a llamarse a sí mismo con el resto del string excluyendo el último carácter. El cambio real ocurre en la última línea donde se devuelve last+reversed. Si fuera al revés no pasaría nada.
Es muy ineficiente pero funciona para mostrar el concepto.
Solo para sugerir una mejor manera de manejar la recursividad:
Inversión de cadenas usando recursividad en C++:
#include
#include
using namespace std;
string reverseStringRecursively(string str)
if (str.length() == 1)
return str;
else
return reverseStringRecursively(str.substr(1,str.length())) + str.at(0);
int main()
string str;
cout<<"Enter the string to reverse : ";
cin>>str;
cout<<"The reversed string is : "<