Neste programa, você aprenderá a reverter uma determinada frase usando um loop recursivo em Kotlin.
Exemplo: reverter uma frase usando recursão
fun main(args: Array) ( val sentence = "Go work" val reversed = reverse(sentence) println("The reversed sentence is: $reversed") ) fun reverse(sentence: String): String ( if (sentence.isEmpty()) return sentence return reverse(sentence.substring(1)) + sentence(0) )
Quando você executa o programa, a saída será:
A frase invertida é: krow oG
No programa acima, temos uma função recursiva reverse()
.
Em cada iteração, adicionamos (concatenamos) o resultado da próxima reverse()
função ao primeiro caractere da frase usando charAt(0)
.
A chamada recursiva deve ser antes de charAt()
, porque dessa forma os últimos caracteres começarão a ser adicionados à esquerda. Se você inverter a ordem, terminará com a frase original.
No final, terminamos com uma frase vazia e reverse()
retornamos a frase invertida.
Iteração | marcha ré() | substring () | reversedString |
---|---|---|---|
1 | reverso ("Vá trabalhar") | "o Trabalho" | resultado + "G" |
2 | reverso ("o Trabalho" | " Trabalhos" | resultado + "o" + "G" |
3 | reverso ("Trabalho") | "Trabalhos" | resultado + "" + "o" + "G" |
4 | reverso ("Trabalho") | "ork" | resultado + "W" + "" + "o" + "G" |
5 | reverso ("ork") | "rk" | resultado + "o" + "W" + "" + "o" + "G" |
6 | reverso ("rk") | "k" | resultado + "r" + "o" + "W" + "" + "o" + "G" |
7 | reverso ("k") | "" | resultado + "k" + "r" + "o" + "W" + "" + "o" + "G" |
Final | marcha ré("") | - | "" + "k" + "r" + "o" + "W" + "" + "o" + "G" = "kroW oG" |
Aqui está o código Java equivalente: Programa Java para reverter uma frase