W tym programie nauczysz się odwracać dane zdanie za pomocą pętli rekurencyjnej w Kotlinie.
Przykład: odwrócenie zdania za pomocą rekursji
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) )
Po uruchomieniu programu wynik będzie następujący:
Odwrócone zdanie to: krow oG
W powyższym programie mamy funkcję rekurencyjną reverse()
.
W każdej iteracji dodajemy (konkatenujemy) wynik następnej reverse()
funkcji do pierwszego znaku zdania za pomocą charAt(0)
.
Wywołanie rekurencyjne musi nastąpić przed charAt()
, ponieważ w ten sposób ostatnie znaki zaczną być dodawane po lewej stronie. Jeśli odwrócisz kolejność, otrzymasz oryginalne zdanie.
Na koniec otrzymujemy puste zdanie i zwracamy zdanie reverse()
odwrócone.
Iteracja | odwrócić() | podciąg () | reverseString |
---|---|---|---|
1 | reverse ("Idź do pracy") | „o Praca” | wynik + „G” |
2 | reverse ("o Praca" | „Praca” | wynik + „o” + „G” |
3 | reverse ("Praca") | "Praca" | wynik + „” + „o” + „G” |
4 | reverse ("Praca") | „ork” | wynik + „W” + „„ + „o” + „G” |
5 | reverse („ork”) | „rk” | wynik + „o” + „W” + „” + „o” + „G” |
6 | reverse ("rk") | „k” | wynik + "r" + "o" + "W" + "" + "o" + "G" |
7 | do tyłu („k”) | „” | wynik + "k" + "r" + "o" + "W" + "" + "o" + "G" |
Finał | odwrócić("") | - | "" + "k" + "r" + "o" + "W" + "" + "o" + "G" = "kroW oG" |
Oto odpowiednik kodu w Javie: Program w języku Java do odwrócenia zdania