Kotlin-program för att vända en mening med rekursion

I det här programmet lär du dig att vända en viss mening med en rekursiv slinga i Kotlin.

Exempel: Omvänd en mening med rekursion

 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) )

När du kör programmet blir resultatet:

 Den omvända meningen är: krow oG

I ovanstående program har vi en rekursiv funktion reverse().

På varje iteration lägger vi till (sammanfogar) resultatet av nästa reverse()funktion till det första tecknet i meningen med charAt(0).

Det rekursiva samtalet måste vara före charAt(), för på det sättet börjar de sista tecknen lägga till till vänster. Om du vänder om ordningen kommer du att få den ursprungliga meningen.

I slutändan slutar vi med en tom mening och reverse()returnerar den omvända meningen.

Utförande steg
Iteration omvänd() substring () reversedString
1 omvänd ("Go work") "o Arbete" resultat + "G"
2 omvänd ("o Arbete" "Arbete" resultat + "o" + "G"
3 omvänd ("Arbete") "Arbete" resultat + "" + "o" + "G"
4 omvänd ("Arbete") "ork" resultat + "W" + "" + "o" + "G"
5 omvänd ("ork") "rk" resultat + "o" + "W" + "" + "o" + "G"
6 omvänd ("rk") "k" resultat + "r" + "o" + "W" + "" + "o" + "G"
7 omvänd ("k") "" resultat + "k" + "r" + "o" + "W" + "" + "o" + "G"
Slutlig omvänd("") - "" + "k" + "r" + "o" + "W" + "" + "o" + "G" = "kroW oG"

Här är motsvarande Java-kod: Java-program för att vända en mening

Intressanta artiklar...