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








