Kotlin Program to Reverse a Sentence Using Recursion

Example: Reverse a Sentence Using Recursion

fun main(args: Array<String>) {
    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]
}

When you run the program, the output will be:

The reversed sentence is: krow oG

In the above program, we've a recursive function reverse().

On each iteration, we add (concatenate) the result of next reverse() function to the first character of sentence using charAt(0).

The recursive call must be before the charAt(), because that way the last characters will start adding to the left hand side. If you reverse the order, you'll end up with the original sentence.

In the end, we end up with an empty sentence and reverse() returns the reversed sentence.

Execution steps
Iteration reverse() substring() reversedString
1 reverse("Go work") "o Work" result + "G"
2 reverse("o Work" " Work" result + "o" + "G"
3 reverse(" Work") "Work" result + " " + "o" + "G"
4 reverse("Work") "ork" result + "W" + " " + "o" + "G"
5 reverse("ork") "rk" result + "o" + "W" + " " + "o" + "G"
6 reverse("rk") "k" result + "r" + "o" + "W" + " " + "o" + "G"
7 reverse("k") "" result + "k" + "r" + "o" + "W" + " " + "o" + "G"
Final reverse("") - "" + "k" + "r" + "o" + "W" + " " + "o" + "G" = "kroW oG"

Here's the equivalent Java code: Java Program to reverse a sentence

Did you find this article helpful?