Tässä ohjelmassa opit kääntämään tietyn lauseen rekursiivisella silmukalla Kotlinissa.
Esimerkki: Lauseen kääntäminen rekursiota käyttämällä
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) )
Kun suoritat ohjelmaa, tulos on:
Käänteinen lause on: krow oG
Yllä olevassa ohjelmassa meillä on rekursiivinen toiminto reverse()
.
Jokaisessa iteraatiossa lisätään (ketjutetaan) seuraavan reverse()
funktion tulos lauseen ensimmäiseen merkkiin käyttämällä charAt(0)
.
Rekursiivisen puhelun on oltava ennen charAt()
, koska viimeiset merkit alkavat lisätä vasemmalle puolelle. Jos muutat järjestystä, päädyt alkuperäiseen lauseeseen.
Loppujen lopuksi päätämme tyhjään lauseeseen ja palautamme reverse()
käännetyn lauseen.
Toisto | käänteinen() | substing () | reversedString |
---|---|---|---|
1 | taaksepäin ("mene töihin") | "o Työ" | tulos + "G" |
2 | taaksepäin ("o Work" | " Työ" | tulos + "o" + "G" |
3 | taaksepäin ("työ") | "Työ" | tulos + "" + "o" + "G" |
4 | taaksepäin ("työ") | "ork" | tulos + "W" + "" + "o" + "G" |
5 | taaksepäin ("ork") | "rk" | tulos + "o" + "W" + "" + "o" + "G" |
6 | taaksepäin ("rk") | "k" | tulos + "r" + "o" + "W" + "" + "o" + "G" |
7 | taaksepäin ("k") | "" | tulos + "k" + "r" + "o" + "W" + "" + "o" + "G" |
Lopullinen | käänteinen("") | - | "" + "k" + "r" + "o" + "W" + "" + "o" + "G" = "kroW oG" |
Tässä on vastaava Java-koodi: Java-ohjelma lauseen kääntämiseksi