V tomto programe sa naučíte obrátiť danú vetu pomocou rekurzívnej slučky v Kotline.
Príklad: Obrátenie vety pomocou rekurzie
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 spustení programu bude výstup:
Obrátená veta je: krow oG
Vo vyššie uvedenom programe máme rekurzívnu funkciu reverse()
.
Pri každej iterácii pridáme (zreťazíme) výsledok nasledujúcej reverse()
funkcie k prvému znaku vety pomocou charAt(0)
.
Rekurzívne volanie musí byť pred charAt()
znakom, pretože tak sa začnú na ľavej strane pridávať posledné znaky. Ak poradie obrátite, skončí sa pôvodná veta.
Nakoniec skončíme s prázdnou vetou a reverse()
vrátime obrátenú vetu.
Iterácia | reverz () | podreťazec () | reversedString |
---|---|---|---|
1 | reverz („Choď do práce“) | „o Práca“ | výsledok + "G" |
2 | spätný chod („o práca“) | " Práca" | výsledok + „o“ + „G“ |
3 | reverz („Práca“) | "Práca" | výsledok + "" + "o" + "G" |
4 | reverz („Práca“) | „ork“ | výsledok + "W" + "" + "o" + "G" |
5 | reverz („ork“) | „rk“ | výsledok + "o" + "W" + "" + "o" + "G" |
6 | spätný chod („rk“) | „k“ | výsledok + "r" + "o" + "W" + "" + "o" + "G" |
7 | reverz („k“) | „“ | výsledok + "k" + "r" + "o" + "W" + "" + "o" + "G" |
Konečný | reverz („“) | - | "" + "k" + "r" + "o" + "W" + "" + "o" + "G" = "kroW oG" |
Tu je ekvivalentný kód Java: Program Java na obrátenie vety