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