Ebben a programban megtanulod megfordítani az adott mondatot egy rekurzív hurok segítségével Kotlinban.
Példa: Mondat megfordítása rekurzióval
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) )
A program futtatásakor a kimenet a következő lesz:
A fordított mondat: krow oG
A fenti programban rekurzív függvényt használunk reverse()
.
Minden egyes iterációnál hozzáadjuk (összefűzzük) a következő reverse()
függvény eredményét a mondat első karakteréhez charAt(0)
.
A rekurzív hívásnak a-előtt kell lennie charAt()
, mert így az utolsó karakterek elkezdődnek a bal oldalon. Ha megfordítja a sorrendet, akkor az eredeti mondat lesz a vége.
Végül egy üres mondattal végzünk, és reverse()
visszaadjuk a megfordított mondatot.
Ismétlés | fordított() | szubsztring () | fordítottString |
---|---|---|---|
1 | hátramenet ("Menj dolgozni") | "o Munka" | eredmény + "G" |
2 | fordított ("o Work" | "Munka" | eredmény + "o" + "G" |
3 | hátramenet ("Munka") | "Munka" | eredmény + "" + "o" + "G" |
4 | hátramenet ("Munka") | "ork" | eredmény + "W" + "" + "o" + "G" |
5. | hátramenet ("ork") | "rk" | eredmény + "o" + "W" + "" + "o" + "G" |
6. | hátramenet ("rk") | "k" | eredmény + "r" + "o" + "W" + "" + "o" + "G" |
7 | hátramenet ("k") | "" | eredmény + "k" + "r" + "o" + "W" + "" + "o" + "G" |
Végső | fordított("") | - | "" + "k" + "r" + "o" + "W" + "" + "o" + "G" = "kroW oG" |
Itt található az ekvivalens Java-kód: Java program a mondat megfordítására