En este programa, aprenderá a revertir una oración dada usando un bucle recursivo en Java.
Ejemplo: revertir una oración usando recursividad
public class Reverse {
public static void main(String[] args) {
String sentence = "Go work";
String reversed = reverse(sentence);
System.out.println("The reversed sentence is: " + reversed);
}
public static String reverse(String sentence)
{
if (sentence.isEmpty())
return sentence;
return reverse(sentence.substring(1)) + sentence.charAt(0);
}
}
Cuando ejecutas el programa, la salida será:
La oración inversa es: krow oG
En el programa anterior, tenemos una función recursiva
reverse()
.
En cada iteración, agregamos (concatenamos) el resultado de la siguiente
reverse()
función al primer carácter de la oración usando charAt(0)
.
La llamada recursiva debe ser anterior a la
charAt()
, porque de esa manera los últimos caracteres comenzarán a agregarse al lado izquierdo. Si invierte el orden, terminará con la oración original.
Al final, terminamos con una oración vacía y
reverse()
devuelve la oración invertida.Iteración | marcha atrás() | subcadena () | cuerda invertida |
---|---|---|---|
1 | reversa ("Ir a trabajar") | "o trabajo" | resultado + "G" |
2 | reversa ("o trabajo") | " Trabajo" | resultado + "o" + "G" |
3 | reversa ("Trabajo") | "Trabajo" | resultado + "" + "o" + "G" |
4 4 | reversa ("Trabajo") | "ork" | resultado + "W" + "" + "o" + "G" |
5 5 | reverso ("ork") | "rk" | resultado + "o" + "W" + "" + "o" + "G" |
6 6 | reverso ("rk") | "k" | resultado + "r" + "o" + "W" + "" + "o" + "G" |
7 7 | reverso ("k") | "" | resultado + "k" + "r" + "o" + "W" + "" + "o" + "G" |
Final | marcha atrás("") | - | "" + "k" + "r" + "o" + "W" + "" + "o" + "G" = "kroW oG" |
0 Comentarios
Dejanos tu comentario para seguir mejorando!