Kotlin-ohjelma lauseen kääntämiseksi rekursiota käyttämällä

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.

Suoritusvaiheet
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

Mielenkiintoisia artikkeleita...